Polygone

Polygone - C++ - Programmation

Marsh Posté le 18-02-2006 à 14:31:20    

J'ai une liste de points (x1,y1), (x2,y2), (x3,y3),...
 
http://img462.imageshack.us/img462/1710/untitled4copy8bl.th.jpg
 
j'aimerai trouver le plus Edit : grand petit polygone qui permet de  contenir tout les points
 


Message édité par red faction le 18-02-2006 à 15:24:05
Reply

Marsh Posté le 18-02-2006 à 14:31:20   

Reply

Marsh Posté le 18-02-2006 à 14:36:12    

le plus grand? Ca risque de pas être évident.[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-02-2006 à 14:36:58    

ah, j'avais pas regardé l'image...il faut que les sommets du polygone fassent partie des points?! :D


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-02-2006 à 14:36:58    

ok jme suis mal exprimé

Reply

Marsh Posté le 18-02-2006 à 14:38:05    

le polygone ne doit utilise que les points deja presents  
et englober tout le monde

Reply

Marsh Posté le 18-02-2006 à 14:40:41    

j'ai pense au truc bien bourrin dessayer tout les possiblite mais comme c pour faire du temps reel :/

Reply

Marsh Posté le 18-02-2006 à 14:41:37    

au pif, tu peux commencer par prendre les points qui ont le plus grand X, le plus grand Y, le plus petit X et le plus petit Y.
Ensuite tu testes les points un par un, et si le point est pas dedans tu le rajoutes à la liste des sommets et tu continues...non?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-02-2006 à 15:00:37    

c vrai que si je prend :  
pt1 plus petit X
pt2 plus grand X
pt3 plus petit Y
pt4 plus grand Y
 
jai deja le rectangle qui comprend tout les points

Reply

Marsh Posté le 18-02-2006 à 15:01:19    

Oui, mais tu n'as pas forcément tous les sommets de ce rectangle dans ta liste de points.[:aloy]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-02-2006 à 15:03:02    

Bon par contre mon idée est pas suffisante, en fait. :D
 
Ou alors ton exemple était faux.:D


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-02-2006 à 15:03:02   

Reply

Marsh Posté le 18-02-2006 à 15:03:54    

Le premier truc à faire c'est exprimer vraiment clairement ce que tu veux, en fait.[:joce]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-02-2006 à 15:06:06    

je suis sur que il existe deja un algo tout fait et que qqn sest deja pose la mm question (Carmack ?! :whistle:)

Reply

Marsh Posté le 18-02-2006 à 15:12:05    

bah des algos tout faits on t'en trouverait surement si ce que tu veux était plus clair.[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-02-2006 à 15:15:30    

Bah ce dont j'ai besoin est tout simple qd meme non ?

Reply

Marsh Posté le 18-02-2006 à 15:16:51    

non.
Parce-que ce que je te donnais comme solution répond à la question exprimée, mais ne donnera pas le résultat prévu, sur ton exemple.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-02-2006 à 15:20:06    

edit : reflexion en cours...


Message édité par red faction le 18-02-2006 à 15:21:25
Reply

Marsh Posté le 18-02-2006 à 15:29:38    

Reply

Marsh Posté le 18-02-2006 à 15:33:17    

Regarde l'algorithme de Jarvis pour la construction d'enveloppes convexes. Tu peux aussi regarde la méthode de Graham.
Jarvis est franchement simple à implémenter
 
http://www.enseignement.polytechni [...] d__10.html
 
Attention avec Jarvis tu n'obtiendra pas l'image que tu présente en haut. En effet sur l'image, tu crée un polygone concave. le creux en haut a droite n'existera pas sur un polygone convexe.


Message édité par caddie le 18-02-2006 à 15:37:43
Reply

Marsh Posté le 18-02-2006 à 19:04:30    

Salut,
Mais c'est le plus petit en nombre de coté ou en superficie?  :pt1cable:

Reply

Marsh Posté le 18-02-2006 à 22:29:55    

avec une std::map<>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed