Posicionar vértices en Papervision3D
Los elementos 3D (planos, esferas, modelos 3d, etc) están compuestos de triángulos.
Por ejemplo, si creamos un plano en Papervision3D con un WireframeMaterial con la siguiente sintaxis:
1 |
var plano:Plane = new Plane(material, 100, 100, 4, 3) |
obtenemos un resultado parecido a este:
Los vértices de un objeto están almacenados en un Array (vertex) dentro de la propiedad geometry del objeto. Por ejemplo, en el caso de nuestro plano podemos recorrer los vértices con este bucle:
1 2 |
for each (var vertex:Vertex3D in plano.geometry.vertices) { } |
Los números que he colocado sobre la imagen anterior, indican el orden en el que aparecen los vértices en esta matriz. Podemos observar que un plano por n x m segmentos, tiene (n+1) x (m+1) vértices.
En nuestro caso, el plano de 4×3 segmentos, tiene 5×4 vértices, ordenados de abajo arriba y de izquierda a derecha.
Estos vértices tienen unas coordenadas, que dan a la malla la apariencia de plano, y se pueden modificar. Por ejemplo imaginemos que queremos hacer un carrusel circular compuesto por 8 planos.
Podemos crear los 8 planos, y distribuirlos en el círculo mirando al centro, con lo que obtendríamos algo asi (click en la imagen para ver):
El efecto es resulton, pero si nos fijamos, los planos aparecen rígidos y no se adaptan a la forma del círculo. Para solucionarlo, podemos posicionar los vértices de los planos en el círculo, en lugar de los propios planos, con lo que obtendríamos algo asi (click en la imagen para ver):
Aunque en principio puede parecer muy complejo «posicionar vértices», en realidad haciendo un par de ejemplos se entiende perfectamente, y en algunos proyectos puede mejorar mucho los resultados. Dejo los fuentes comentados, para poder probar las dos opciones y ver las diferencias.
Y los archivos fuente:
Descargar fuentes