Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Detecter axe de symétrie dans un polygone [ Algorithme / Maths ] (alexis0788)

jeudi 17 avril 2008 à 09:05:58 | Detecter axe de symétrie dans un polygone

alexis0788

Bonjour à tous, je suis actuellement en fin de projet informatique en C sur les polygones.
Je touche au but mais la dernière question est, je trouve, vraiment difficile...
Voila, je cherche à détecter dans un polygone non croisé et convexe la présence éventuelle d'un axe de symétrie.
S'il en existe plusieurs, je dois donner au minimum l'équation d'un axe.
Je travaille avec deux structure:

Code :
  1. typedef struct POINT {char *nom;
  2.                                float abscisse;
  3.                                float ordonnee;
  4.                                struct POINT *succ;} point;
  5. typedef struct DROITE {float a;float b;float c;} droite;


 
Voici les fonctions que j'ai déjà réalisé:

Code :
  1. //creer un point
  2. point *newp();
  3. //affiche les points
  4. void affichep(point *p);
  5. //creer une chaine de points
  6. point *chainep();
  7. //calcul du perimetre
  8. void perimetre(point *p);
  9. //calcul de l'aire à partir de la formule d'Héron
  10. void aire(point *p);
  11. //determine si les deux côtés s'intersectent et renvoie 1 si c'est le cas sinon renvoie 0;
  12. //côtéun=points un et deux; côtédeux=points trois et quatre
  13. int intersection(point *un,point *deux,point *trois,point *quatre);
  14. //si le polygone est croisé alors renvoie 1 sinon renvoie 0;
  15. int croise(point *p);
  16. //calcule l'angle entre p2p1 et p2p3
  17. float angle(point *p1,point *p2,point *p3);
  18. //determine si un angle est saillant (appartient a ]0;90[)
  19. float saillant(point *p1,point *p2,point *p3);
  20. //determine si un polygone est convexe:concave(1) si un seul angle est saillant, convexe(0) si tous les angles sont non saillants
  21. int convexite(point *p);
  22. //calcule le nombre de points du polygone
  23. int comptepoint(point *p);
  24. //resoud un systeme a deux inconnues
  25. point * equasolve(droite d1,droite d2);
  26. //donne le point d'intersection de deux mediatrices
  27. point * media_inter(point *p1,point *p2,point *p3);
  28. //determine si un point appartient a une droite
  29. int p_appartient(point *centre,point *p1,point *p2);
  30. //determine s'il existe le cercle circonscrit
  31. droite cercle_cir(point *p);
  32. //determine l'intersection de deux bissectrices
  33. point * bis_inter(point *un,point *deux,point *trois,point *quatre);
  34. //determine s'il existe le point de symetrie
  35. point * point_sym(point *p);


 
Merci de votre aide...
 
 


jeudi 17 avril 2008 à 18:21:25 | Re : Detecter axe de symétrie dans un polygone

luhtor

J'aurais tendance à dire que si il existe un axe de symétrie, il passe nécessairement par la moyenne des points (mais bon, c juste intuitif). Donc si cela est vrai, suffit ensuite de tester avec tous les vertex. L'hypothèse permet de simplifier pas mal la complexité du problème (en terme de temps de calcul).

Enfin voila, ce que je peux te dire après quelques minutes de réflexions. Ya surement mieux, mais bon.

jeudi 29 mai 2008 à 19:27:05 | Re : Detecter axe de symétrie dans un polygone

Brutus64

Bonjour Alexis,

Comment détermines tu les coordonnées de chaque point ? Est-ce à l'aide d'une fonction ? Si tel est le cas, je devrais pouvoir t'aider ...




Cette discussion est classé dans : points, float, droite, polygone, determine


Répondre à ce message

Sujets en rapport avec ce message

gérer des millions de points [ par fafa21081974 ] Bonjour tout le monde après deux mois de stage et d'initition à C++, il m'est souvent arrivé de vous contacter et votre aide m'a toujours bcp dépann Création d'un mesh à partir de points. --> Stack overflow [ par rotfa ] Salut à tous.Je suis entrain de développer une game-engine spécifique qui pourrait être utilisé dans des cours pour faire des démos et développer des traduction de C++ en Delphi [ par Kirbal ] salut, je dois traduire une source en C++ en Delphi mais je tombe sur un os....[quote]class TCamera {      private:                          Point3D O CRichEditCtrl & Nombres arabes [ par Toutoun13 ] Bonjour,J'essaye d'ecrire dans un CRichEditCtrl de l'arabe. Je ne rencontre aucun problème pour ecrire du texte, en passant le code ASCII unicode des besion d' aide [ par ccfacile ] j'ai  fais un programme sur devc++ pour resoudre l'equation matricielle : A*X=B ,  je vois pas ou est elle euruer ? est ce que vous pouvez aidez SVP, float en c++ [ par dacor ] Bonjour,je code en c++ sous linux(machine 64bits) et je voudrais savoir comment obtenir la valeur maximale que peut prendre un float et aussi pour un Rotation Axiale [ par Seboo ] Bonjour, J'ai un probleme concernant la rotation. J'ai 2 points A et B de coordonnées respectives x1,y1,z1 et x2,y2,z2 et j'aimerai appliquer à ces de utilisation de "this.*" et class sous c++ [ par gluff ] bonjour,Je n'arrive pas a compiler ce programme a cause de l'utilisation des "this." en particulier a la ligne : erreur de compilation :  vecteur si n float from sting [ par noumian ] bonjout a tousj'ai un petit prebleme avec une fonction de mon programmejvoudrais extraire un chiffre (float) inserer entre deux string "hello" et "wor construire une trame de données en c++ [ par salsou34 ] Bonjour, J'essai depuis plusieurs jours de créer une trame de données afin de l'envoyer sur un port serie. Ma trame serait constitué de 45 octets; Déb


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.