trazar regular regla poligono pentagono lados lado hacer facil dibujar con compas como cartulina 5cm iphone opengl-es polygon tessellation

iphone - regla - pentagono regular



OpenGL ES-¿Cómo dibujar un polígono lleno? (6)

Intenté buscar en Google y buscar en la pila, pero no encontré nada :-(
( Mapeo de formas irregulares u otros polígonos (caricaturas, sprites) a triángulos en OpenGL ES )

Quiero dibujar un polígono lleno en OpenGL ES en iPad (2D, no necesito 3D) (Soy nuevo en OpenGL && OpenGL ES) Parece simple en OpenGL pero con ES solo puede dibujar un triángulo.

Pero no puedo encontrar ningún buen tutorial sobre esto :-( ¿Existe algún contenedor / biblioteca o cualquier otra cosa que pueda ayudarme?

No quiero usar CoreGraphics , es demasiado lento para lo que estoy haciendo ^^
Y si es posible, evite una biblioteca demasiado grande como Cocos2D.

Editar : trabajando en el problema, aquí hay algunos enlaces útiles (se editarán)
Campo de golf
- Triangulación de polígono
http://www.vterrain.org/Implementation/Libs/triangulate.html
http://en.wikipedia.org/wiki/Polygon_triangulation (WIKI) http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml (polígono SIN agujeros) http://www.cs.unc.edu/~dm /CODE/GEM/chapter.html (polígono WITH holes, código C)

Solución
Voy a tratar de usar polígono teselación para obtener triángulos. Primero intentaré ( http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml ) y como necesito un polígono con agujeros, el segundo ( http://www.cs.unc.edu/~ dm / CODE / GEM / chapter.html ). Si alguien tiene una mejor manera, POR FAVOR, dígame con un comentario ^^

Gracias :-)


En OpenGL no-ES, se tiende a utilizar el tessellator de la biblioteca GL Utility (glu). Encontré este proyecto que tiene como objetivo hacer que glu esté disponible para el iPhone y afirma que es compatible con el teselado de polígono; si funciona, sería una buena opción.


No he intentado utilizar OpenGL ES, pero a juzgar por una rápida revisión de la documentación, debería poder dibujar un polígono convexo utilizando, por ejemplo, un "ventilador de triángulo":

glVertexPointer(2, ..., arrayOfCoordinates) ... glDrawElements(GL_TRIANGLE_FAN, ... , arrayOfIndices);

Puedes pensar en un "ventilador de triángulo" como los radios de una rueda de bicicleta que divide el área de la rueda en "triángulos" (el borde exterior de una rueda de bicicleta es, por supuesto, redondo, pero espero que entiendas la idea).

ACTUALIZACIÓN: encontré un pequeño diagrama en la web:



En la página de Wikipedia Polygon Triangulation Talk sostengo que más triángulos de hecho serán más rápidos.

He escrito un motor de triangulación que admite agujeros y se ejecuta en el tiempo O (n log (n)). Lo probé en Gdk y luego creé una aplicación para Android.


¿Cuál es tu elección final? Recientemente probé 5 de las librerías que figuran en el siguiente enlace: http://vterrain.org/Implementation/Libs/triangulate.html

Pero ninguno de ellos es satisfactorio ...

  1. iphone-glu: (http://code.google.com/p/iphone-glu/)

    • Errores en el algoritmo? hay pequeños agujeros que no están llenos, o a veces dibujan fuera del polígono
  2. Triangulte: (http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml)

    • no admite agujeros ...
  3. Triangulación: (http://www.cs.unc.edu/~dm/CODE/GEM/chapter.html)

    • Buggy, a veces se queda sin límites, o índice negativo, etc.
  4. poly2tri: (http://code.google.com/p/poly2tri/)

    • Buggy, accidente en ciertos casos
  5. openglespolygon: (https://github.com/nroets/OpenGlEsPolygon)

    • algoritmo imperfecto? hay pequeños agujeros (no rellenos) a lo largo de los bordes del polígono

Cuando necesite triangular polígonos con agujeros, puede intentar usar GPC . Hay una función para la tringulación llamada gpc_polygon_to_tristrip .

Para el render usa GL_TRIANGLE_STRIP .

¡Pero lea la licencia de gpc primero!