Paso 6: 3D primitivas: esferas
Así que echemos un vistazo a dibujar algunas formas sólidas reales. Una esfera es un buen lugar para empezar. Supongamos que queremos dibujar una esfera con radio r, centrada en el punto p.
Una cosa que he notado con los gráficos del cubo--esferas sólidas realmente no se ven muy bien--con mayoría de gráficos, quiere dibujar la superficie, pero deje el interior vacío. Si usted llena la forma entera, usted conseguirá una mancha muy brillante, pero no añade ninguna información adicional sobre la forma. La resolución es muy limitada en cubos, así que trato de mantener los LEDs a la mínima que necesita y centrarse en la información de forma de transporte.
Dibujo de un cubo es similar a los procesos que utilizan para dibujar en CAD. Comenzar dibujando una sección circular de LEDs y luego giran en esa sección transversal alrededor de un eje para crear una esfera. Para dibujar un círculo, podría escribir un bucle simple como:
for(float angle=0;angle<2*PI;angle+=.1) setVoxel(p.x + radius*cos(angle), p.y + radius * sin(angle), p.z, color(255));
Para hacer girar este círculo, se anidan el lazo del círculo dentro de otro bucle, así:
for(float phi=0;phi<PI;phi+=0.1) for(float angle=0;angle<2*PI;angle+=.1) setVoxel(p.x + radius*cos(angle)*sin(phi), p.y + radius * sin(angle) * sin(phi), p.z + r*cos(phi), color(255));
Auge de Bada bing bada, tengo una esfera!
Por supuesto, esto está incorporado en la biblioteca. En lugar de escribir este lazo usted mismo, usted puede llamar
L3D.sphere(PVector center, float radius, color col)
y el objeto se encargará de dibujar una esfera en el cubo.
Para obtener más información, revisa el ejemplo de las esferas en la biblioteca, que es lo que genera el gif animado de arriba.