Polygones concaves plein

jojomillenium Messages postés 136 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 26 mai 2007 - 29 oct. 2006 à 23:55
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 - 1 nov. 2006 à 12:18
Hello!


J'aimerai dessiner des polygones concaves! Je sais que c'est impossible
directement avec GL_POLYGON, mais que c'est possible via le tampon
stencil... seulement j'aimerai dessiner des poygones dont le nombre de
sommets peut changer...

Bref je n arrive pas a trouver un algorithme pour pouvoir le faire

Surtout que la methode via le tampon est utile lorsque l'on connait les
sommets! ont fait alors tout "manuellement" mais faire un algorithme
qui calcul tout ca tout seul pour chaque polygon qu'on veut dessiner je
vois pas!


Quelqu un a une idée ou une voie a me donner pour pouvoir dessiner un polygone concave plein?


Merci!
A voir également:

4 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
30 oct. 2006 à 10:24
Mais pk as tu besoin de tracer des concaves, tu peux pas te démerder pour avoir plusieurs convexes à la place ?

Pour dessiner un polygone concave, toute facon, faut le découper en polygone convexe.


Je comprend pas ton truc du stencil la, "lorsque l'on connait les sommets", bas tu les connais forcément avant de tracer ...

Et "manuellement" je comprend pas trop ce que ca veut dire. Tu fais toi meme le découpage en polygone convexe?


PS: ca fait quoi quand tu veux dessiner un polygone concave ? j'ai jamais essayé.
0
jojomillenium Messages postés 136 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 26 mai 2007
30 oct. 2006 à 12:42
en fait, si je rentre moi les coordonnée du polygone, je sais ou se
trouve les sommets et je sais ce qui est DANS le polygone et ce qui est
HORS du polygone!

Le problemes c'est que je lis dans un fichier les coordonnées de
polygones a N nombre de sommets variables et bien sur OpenGL ne peut
pas savoir dans ce polygone ce qui est dedans ou dehors du polygone si
je trace par triangle!

Imagine un polygone simple du genre de celui ci dessous:


4_________________5

 
|                                
|

 
|                                
|

 
|                                
|

3|_______2                 |

           
   
|                  
|

           
    |
                 
|

              1|_________ |6


avec les 6 sommets! j'ai un vertexpointer avec les coordonnées des points 1,2,3,4,5 et 6

maintenant je sais en connaissant moi ce polygone que je peux le dessiner en trancant les triangle 126, 265, 254, et 324

mais comment créer un algorithme qui sache faire ca tout seul et
comprendre commet dessiner les bon triangles se trouvant a l interrieur
du polygone! on peut s amuser a faire dessiner des triangles pour
chaque point, mais le trianle 123 par exemple ne doit pas etre dessiner
car il est en dehors du polygone!

J'espere que mon explication est plus simple cette fois!
0
jojomillenium Messages postés 136 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 26 mai 2007
30 oct. 2006 à 12:44
pour repondre a ton PS au fait, dessiner un polygon avec GL_POLYGON en
donnant dans l ordre les point 1,2,3,4,5 et 6 par exemple pour celui du
dessus, bah ca rend ton polygone convexe, en par exemple ajoutant un
ligne de 6 à 3 en remplissant l'interieur, ou meme simplement de 1 a 3!
Je te raconte pas ce que ca donne quand je dessine mes polygones qui
font 16 sommets!
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
1 nov. 2006 à 12:18
Problème bien connu ...
jojomillenium , certes, mais ce n'est pas facilement généralisable.

Fais le tour de l'API GLU, tu as une fonction toute faite pour ça. Doit y avoir pléthore de tutos pour l'utiliser, après. Si ça te va pas et que tu veux tout recoder ben lol éclate toi :D ( je pense pas que ce soit tellement dur, mais bon ... )

++
ad

_______________________

Omnia vincit labor improbus
0
Rejoignez-nous