Contenido principal
Describir figuras 3D
Una figura sencilla para empezar a trabajar es un cubo. Aunque un tetraedro tiene menos lados, su lados no son ortogonales, lo que hace que las cosas sean más complicadas. Empecemos por crear un cubo de 200×200×200 pixeles, centrado en el origen (0, 0, 0).
Vamos a empezar sin dibujar nada en realidad, pero con arreglos de números que describen nuestras figuras en forma de 3D. Específicamente, arreglos que describen nuestros nodos y nuestras aristas.
Nodos
Empezamos por definir un arreglo de nodos, donde cada nodo es un arreglo de tres números: las coordenadas x, y y z de ese nodo:
var node0 = [-100, -100, -100];
var node1 = [-100, -100, 100];
var node2 = [-100, 100, -100];
var node3 = [-100, 100, 100];
var node4 = [ 100, -100, -100];
var node5 = [ 100, -100, 100];
var node6 = [ 100, 100, -100];
var node7 = [ 100, 100, 100];
var nodes = [node0, node1, node2, node3, node4, node5, node6, node7];
Como te habrás dado cuenta, los nodos son todas las 8 maneras de organizar tres grupos de 100, positivo o negativo.
Puedes ver los nodos de un cubo de 2x2x2 centrado en el origen en la siguiente visualización. Rota usando el ratón:
Aristas
A continuación definimos un arreglo de aristas, donde cada arista es un arreglo de dos números. Por ejemplo,
edge0
define una arista entre node0
y node1
. Empezamos a contar en 0 porque los arreglos están indexados a partir de cero (para obtener el valor del primer nodo escribimos nodes[0]
).var edge0 = [0, 1];
var edge1 = [1, 3];
var edge2 = [3, 2];
var edge3 = [2, 0];
var edge4 = [4, 5];
var edge5 = [5, 7];
var edge6 = [7, 6];
var edge7 = [6, 4];
var edge8 = [0, 4];
var edge9 = [1, 5];
var edge10 = [2, 6];
var edge11 = [3, 7];
var edges = [edge0, edge1, edge2, edge3, edge4, edge5, edge6, edge7, edge8, edge9, edge10, edge11];
La parte complicada es asegurarte de que juntes las aristas correctas. Aquí hay una visualización de las aristas que estamos conectando para un cubo:
¿Quieres unirte a la conversación?
- ¿por qué las coordenadas de los nodos son en algunos casos negativas?(4 votos)
- Capaz ya te lo hayas aclarado solo, pero te lo respondo igual. Se toma el centro del cubo como punto (0,0,0), teniendo en cuenta que el cubo es de (200,200,200) vas a tener |100| a cada lado del 0, por lo que te queda 100 y -100 según sea el caso.(5 votos)
- En que programa de computadora puedo realizarlo(2 votos)
- Para comprender mejor, tenemos que los nodos están representados por los puntos verdes del cubo, en donde, se representan por vértices.
Un vértice está representado en un plano cartesiano por las coordenadas x, y, y z. En donde, x representa el eje horizontal, y el eje vertical, y z representa la profundidad.
Por otra parte, tenemos que estos vértices se entrelazan, por medio de aristas. Las aristas son esas líneas azules en el cubo que chocan entre sí, al unirse con el punto verde.
Por ejemplo, tenemos que:
var node0 = [-100, -100, -100]; Que lo podemos ver como var node0 = [x, y, z];
Por lo tanto, tenemos qué.
var edge0 = [0, 1];
var edge0 = [node0, node1];
var edge0 = [-100, -100, -100], [-100, -100, 100];(2 votos) - la verdad yo no etendi(2 votos)
- Me gustaria hacer un game donde lo hago?(2 votos)
- i don't understand what you said xdxdxd(1 voto)
- ¿como puedo crear un juego con esto?(1 voto)
- Demacada informacion no entiendo los de xian(1 voto)
- Esta en lenguaje PHP, se puede programar para c# ??(2 votos)
- estoes interesante se puede crear un juego con esto(0 votos)
- Quieren en español ¡¡¡ traduscalo en esto translate.google.com.pe(0 votos)