begin process at 2012 02 11 20:24:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Detecter axe de symétrie dans un polygone


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Detecter axe de symétrie dans un polygone

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ée 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 Simulateur & conduite automatique d'1 voiture [ par sonia393 ] Bonjour, voila, je suis en train de créer un petit simulateur de voiture avec conduite automatique : j'ai un état 1 (position, cap, vitesse, accélérat maillage [ par widwid ] bonjourje développe un code pour visualiser en 3D la surface externe d'un nuage de points.Dans un premier temps, j'ai classé mes points dans des courb conversion float to double [ par chalmia2s ] Bonjour,J'ai un probleme de conversion float, double, voila la partie du programme concerné: float *rd, float*rq;  double hough de droite [ par salma2011 ] slt tt le monde j'ai un petit probleme dans l'implementation de l'algorithme de detection de droite (par la transformée de hough en c++)...dans main j aide pour pb de Programmation de la méthode gram_schmidt [ par hac1002008 ] salut a tous , je debut avec c++ builder , je vous fait voir ma pocedure qui calcule la methode gram_schmidt mais elle a ne donne pas le resultat exac programme en c ou c++ [ par desco182 ] Salut !!!!!!! j'espere que tout va de bon train pour vous . j'ai ce code en le compilant me donne 2 erreurs : 1-declaration terminate incorrectly. 2- UN PETIT COUP DE MAIN POUR SE PROGRAMME SVP !! [ par dualphil ] Bon voila le code j'ai la même erreur en boucle genre 20 fois je sais que sa doit être un truc tout bête mais j'arrive pas à trouver [^^sad1] Voila le


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales