Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Triangulizar poligonos

Iniciado por samsaga2, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

samsaga2

                                Sabeis algún algoritmo que convierta un polígono cóncavo compuesto por vertices en 2d en una lista de triángulos?
                               

BeRSeRKeR

                                Hola...espero que esto te sirva.

Imaginemos que tienes un polígono de 5 vértices y quieres convertirlo a triángulos.

El nº de índices que necesitarías sería

numIndices = (numVertices - 2) * 3
numTriangulos = numIndices / 3

o sea que tendrías que para un polígono de 5 vértices necesitarías o 9 vértices o 9 índices (y 5 vértices) si utilizas primitivas indexadas. Así pues ese polígono se dividiría en 3 triángulos. Para calcular los índices de esos 3 triángulos podrías hacer lo siguiente:

int numIndices = (numVertices - 2) / 3;

WORD *Indices = new WORD[numIndices];

WORD v0, v1, v2;
for(i = 0; i < (numIndices / 3); i++)
{
 if(i == 0)
 {
   v0 = 0;
   v1 = 1;
   v2 = 2;
 }
 else
   v1 = v2;

 v2++;

 Indices[i * 3] = v0;
 Indices[(i * 3) + 1] = v1;
 Indices[(i * 3) + 2] = v2;
}

jeje espero no haberme equivocado...

Saludos
                               
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

BeRSeRKeR

                                jeje eso lo pides para polígonos cóncavos...no había caído en ello :sonriendo:
                               
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

samsaga2

                                Como me gusta el OpenGL! :sonriendo:
Me acabo de enterar mirando en http://graphicsbb.itgo.com/solutions/extrude.html que la libreria glu del opengl lleva funciones de triangulización de poligonos. Incluso soporta agujeros en los poligonos. Me encanta, asi ya no tengo que currarmelo yo, que se lo curre otro, jeje.
                               






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.