Pregunta

I tiene un conjunto de co-planar, triángulos conectados, es decir, una malla de 2D. Ahora necesito para extruir a cabo unas pocas unidades en el eje z. La malla es definida por un conjunto de vértices que el procesador tiene sentido de, haciendo coincidir contra una serie de triángulos.

Ejemplo de malla:

vértices: (0,0,0), (10,0,0), (10,10,0), (0,10,0) <- (x, y, z) Triángulos:. (1, 2, 3) y (3, 4, 1) <- números aquí referencia la posición de un vértice de arriba

Así que aquí tenemos un cuadrado 2D. Ahora tengo que añadir más vértices y triángulos a esa lista para hacer una forma extruida. Triángulos deben estar en dirección a la derecha, de lo contrario ellos son la cara posterior-sacrificadas.

¿Existe un algoritmo simple para esto? Gracias.

¿Fue útil?

Solución

Si se asume que desea extrusión por una distancia z, es necesario seguir estos pasos:

0) Sea n el número original de vértices (4 en su ejemplo)

1) Para cada vértice en la matriz de vértice, añadir (0,0, z) a la misma, y ??añadir el resultado a la matriz de vértice, para un total de 2 * n vértices. Así que, por su ejemplo, agregará los vértices (0,0, z), (10,0, z), (10,10, z), (0,10, z) a la matriz de vértice, para un total de 2 * 4 = 8 vértices.

2) Crear una lista de límite (en contraposición a los bordes internos) para su malla original. Para ello, cree una lista de todos los bordes del triángulo (3 bordes ir en sentido horario para cada triángulo). A continuación, retire pares de bordes iguales pero opuestas (estos son los bordes internos). Para su ejemplo, que se iniciará con 6 aristas, y terminar con 4 bordes después de quitar el par de borde (3,1) y (1,3).

3) para cada triángulo (a, b, c) en su lista de triángulo, crear un triángulo correspondiente (a + n, b + n, c + n). Estas serán las caras extruidas

4) Por último, desea crear los lados de su perfil extrusionado. Para cada borde (a, b) en la lista de borde de límite creó en el paso 2, añadir los triángulos (a, b, b + n) y (b + n, a + n, a)

Eso es todo. Suponiendo que no hay errores tipográficos de mi parte, y sin faltas de ortografía de su parte, ahora debería tener su malla deseada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top