|
Trouver une ressource
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)
Informations & options pour cette discussion
|
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 : - typedef struct POINT {char *nom;
- float abscisse;
- float ordonnee;
- struct POINT *succ;} point;
-
- typedef struct DROITE {float a;float b;float c;} droite;
| Voici les fonctions que j'ai déjà réalisé:
Code : - //creer un point
- point *newp();
-
- //affiche les points
- void affichep(point *p);
-
- //creer une chaine de points
- point *chainep();
-
- //calcul du perimetre
- void perimetre(point *p);
-
- //calcul de l'aire à partir de la formule d'Héron
- void aire(point *p);
-
- //determine si les deux côtés s'intersectent et renvoie 1 si c'est le cas sinon renvoie 0;
- //côtéun=points un et deux; côtédeux=points trois et quatre
- int intersection(point *un,point *deux,point *trois,point *quatre);
-
- //si le polygone est croisé alors renvoie 1 sinon renvoie 0;
- int croise(point *p);
-
- //calcule l'angle entre p2p1 et p2p3
- float angle(point *p1,point *p2,point *p3);
-
- //determine si un angle est saillant (appartient a ]0;90[)
- float saillant(point *p1,point *p2,point *p3);
-
- //determine si un polygone est convexe:concave(1) si un seul angle est saillant, convexe(0) si tous les angles sont non saillants
- int convexite(point *p);
-
- //calcule le nombre de points du polygone
- int comptepoint(point *p);
-
- //resoud un systeme a deux inconnues
- point * equasolve(droite d1,droite d2);
-
- //donne le point d'intersection de deux mediatrices
- point * media_inter(point *p1,point *p2,point *p3);
-
- //determine si un point appartient a une droite
- int p_appartient(point *centre,point *p1,point *p2);
-
- //determine s'il existe le cercle circonscrit
- droite cercle_cir(point *p);
-
- //determine l'intersection de deux bissectrices
- point * bis_inter(point *un,point *deux,point *trois,point *quatre);
-
- //determine s'il existe le point de symetrie
- 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
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|