Lancé Grafar, una biblioteca JS para renderizar

Abrí grafar , mi biblioteca para renderizar. La mayor parte del código se escribió en 2013-2016 para mi tesis. Durante los siguientes 5 años, el proyecto estuvo sobre la mesa: no estaba muy contento con la API, había muchas características interesantes que podía agregar, el trabajo apestaba y había mil razones más para no lanzarlo todavía. , sabes. Después de todo, hay tantas personas en el mundo que son más inteligentes que yo, y definitivamente se les ocurrirá algo mejor, ¿verdad?





La semana pasada me encontré con este hermoso código acumulando polvo en github nuevamente; pensé que todavía se ve bien y estoy seguro de que le ahorrará a alguien mucho tiempo. Así que proporcioné al proyecto documentación de clase mundial, actualicé la compilación e inicié el modo de publicidad.





Para ser honesto, este es el primer lanzamiento público del graphar. Lo más probable es que haya errores y no puedo prometer la estabilidad total de la API para siempre. Pero aún así, estoy seguro de que debe prestar atención al gráfico, y este es el motivo:





API simple. Con solo 10 líneas de código, ha creado la superficie directamente en su navegador. La API está orientada a trabajar con objetos matemáticos (curvas, superficies, puntos) y utiliza un ingenioso modelo de topología de objetos para que todo funcione como se esperaba.





. -, , , , — 1 30FPS. WebGL , .





c 3D 2D. ThreeJS, 3D — , . 2D, .





. Grafar — (- MobX). , , .





, , . codesandbox.





— . :





const p = grafar.range(-2, 2, 500).select();
const q = grafar.range(0, 1, 2).select();
      
      



([-2, 2] p, [0, 1] q) , .





(x,y,z):





const xp = grafar.map([p, q], (p, q) => Math.cos(8 * p) * q);
const yp = grafar.map([p, q], (p, q) => Math.sin(8 * p) * q);
      
      



. -, , p q — , . -, xp yp — p q, xp yp .





, — :





const container = document.getElementById("app");
const panel = grafar.panel(container);
grafar.pin([xp, yp, p], panel);
      
      



7 :






, — , grafar. :





. , , . — , .





Si está interesado en la biblioteca, consulte la documentación (hasta ahora solo en inglés). El código completo de la biblioteca está disponible en github . En ishyus puede quejarse de un error o pedirle que participe en el desarrollo de (no ayudo a prevenir).





De todos modos, espero que les haya resultado interesante. ¡Buena suerte con las listas de éxitos!








All Articles