■ El comando Cube
El comando de objetos Cube en B3D y CSV es equivalente a una serie de comandos Vertex/AddVertex y Face/AddFace.
Dando el siguiente código (Estilo B3D):
▶ | Cube x, y, z |
El comando Cube corresponde a estas instrucciones (estilo B3D):
▶ |
Vertex x, y, -z Vertex x, -y, -z Vertex -x, -y, -z Vertex -x, y, -z Vertex x, y, z Vertex x, -y, z Vertex -x, -y, z Vertex -x, y, z Face v+0, v+1, v+2, v+3 Face v+0, v+4, v+5, v+1 Face v+0, v+3, v+7, v+4 Face v+6, v+5, v+4, v+7 Face v+6, v+7, v+3, v+2 Face v+6, v+2, v+1, v+5 |
donde v es el número de vértices que posee actualmente creado antes que el comando Cube fuera usado.
Si deseas agregar una textura al cubo, necesitas agregar apropiadamente los comandos Coordinate/SetTextureCoordinate manualmente.
■ El comando Cylinder
El comando de objetos Cylinder en B3D y CSV es equivalente a una serie de comandos Vertex/AddVertex y Face/AddFace.
Dando el siguiente código (Estilo B3D):
▶ | Cylinder n, r1, r2, h |
El comando Cylinder primero corresponde a instrucciones de n pares de dos vértices (estilo B3D):
▶ |
Vertex cos[2*pi*0/n]*r1, h/2, sin[2*pi*0/n]*r1 Vertex cos[2*pi*0/n]*r2, -h/2, sin[2*pi*0/n]*r2 Vertex cos[2*pi*1/n]*r1, h/2, sin[2*pi*1/n]*r1 Vertex cos[2*pi*1/n]*r2, -h/2, sin[2*pi*1/n]*r2 Vertex cos[2*pi*2/n]*r1, h/2, sin[2*pi*2/n]*r1 Vertex cos[2*pi*2/n]*r2, -h/2, sin[2*pi*2/n]*r2 … Vertex cos[2*pi*(n-1)/n]*r1, h/2, sin[2*pi*(n-1)/n]*r1 Vertex cos[2*pi*(n-1)/n]*r2, -h/2, sin[2*pi*(n-1)/n]*r2 |
Entones, n caras son añadidas a la forma de las paredes laterales (Estilo B3D):
▶ |
Face 2, 3, 1, 0 Face 4, 5, 3, 2 Face 6, 7, 5, 4 Face 8, 9, 7, 6 … Face 2*n-6, 2*n-5, 2*n-7, 2*n-8 Face 2*n-4, 2*n-3, 2*n-5, 2*n-6 Face 2*n-2, 2*n-1, 2*n-3, 2*n-4 Face 0, 1, 2*n-1, 2*n-2 |
Si r2>0, una tapa inferior es entonces agregada (Estilo B3D):
▶ | Face 2*n-2, 2*n-4, 2*n-6, …, 4, 2, 0 |
Si r1>0, una tapa superior es entonces agregada (Estilo B3D):
▶ | Face 1, 3, 5, …, 2*n-5, 2*n-3, 2*n-1 |
Si deseas agregar una textura al cilindro, necesitas agregar apropiadamente los comandos Coordinate/SetTextureCoordinate manualmente.