Sabeis algún algoritmo que convierta un polígono cóncavo compuesto por vertices en 2d en una lista de triángulos?
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
jeje eso lo pides para polígonos cóncavos...no había caído en ello :sonriendo:
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.