[Geometrie] Liens entres les coordonnées des sommet d'un Polygone regulier.
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

[Geometrie] Liens entres les coordonnées des sommet d'un Polygone regulier.



  1. #1
    Mikiisa

    [Geometrie] Liens entres les coordonnées des sommet d'un Polygone regulier.


    ------

    Bien le bonjour,
    Dans le cadre d'un projet de programmation en Java je suis amené à travailler sur la géometrie et un problème viens de pointer le bout de son nez.
    Pour ceux qui connaissent java, voici les détails que ceux qui ne sont ici que pour les maths pourrons sans doute omettre de lire ^^:
    J'ai une classe "InterfaceGraphique" qui étend "JFrame" dans laquelle j'ouvre une fenêtre graphique et j'y place un "Canvas" qui est un "JPanel" étendu avec un Polygon et qui me permet de tracer ce polygone dans la fenêtre. Mais voilà, pour définir un Polygone (qui n'est rien d'autre qu'un int[] xPoints et un int[] yPoints, tableaux contenant les coordonnés x (et y) des points du polygone) il faut généralement écrire manuellement les coordonnés des points ce qui peut s'avérer très fastidieux pour mon projet. J'ai donc décider de créer une classe un peu spécial contenant tout un panel de fonction qui créent divers polygone spécifique à partir d'un nombre restreint d'argument.

    Voilà mon problème:
    J'aimerais créer une méthode qui à partir de 2 points (A(xA,yA) et B(xB,yB)) et d'un entier n>1 renvois un polygone régulier à n sommet dont les 2 premiers sommet sont A et B.

    Ma question est donc: Comment faire pour calculer les coordonnés du k-eme sommet à partir des coordonnés de A et B ou éventuellement à partir des coordonnée du (k-1)-eme sommet. Des idées ^^?

    -----
    Dernière modification par Mikiisa ; 09/11/2011 à 16h47.

  2. #2
    Linkounet

    Re : [Geometrie] Liens entres les coordonnées des sommet d'un Polygone regulier.

    Les sommets d'un polygone à n sommets, centrée en 0, peuvent s'interpréter comme les racines n-ième de l'unité (exp 2ikpi/n, k allant de 0 à n-1). Pour un polygone centré en un point O' quelconque, ils s'écriront donc (O' + exp 2kipi/n), il reste donc à convertir en nombres complexes tes points, écrire l'un d'eux sous la forme O' + exp(iphi) et de calculer les angles... Mais peut-être existe-il des fonctions déjà écrites qui te permettent de tracer directement des figures ?
    Dernière modification par Linkounet ; 09/11/2011 à 18h58.

  3. #3
    invite6cf1de63

    Re : [Geometrie] Liens entres les coordonnées des sommet d'un Polygone regulier.

    Ma question est donc: Comment faire pour calculer les coordonnés du k-eme sommet à partir des coordonnés de A et B ou éventuellement à partir des coordonnée du (k-1)-eme sommet. Des idées ^^?
    Bonjour, je commencerai par calculer les coordonnées du centre O du polygone régulier (on a deux possibilités suivant le demi-plan séparé par (AB)). Ce centre O forme un triangle isocèle OAB dont la mesure de l'angle au centre (en O) est en degré 360/n avec n le nombre de côtés. On a là tout ce qu'il faut pour trouver O...

    Une fois connues les coordonnées de O et la mesure de l'angle, on fait des rotations successives du point A (ou B) pour trouver les coordonnées des autres points.

  4. #4
    Elwyr

    Re : [Geometrie] Liens entres les coordonnées des sommet d'un Polygone regulier.

    Bonsoir !

    Je ne suis pas sûr d'avoir quelque chose de pratiquement réalisable, malheureusement. Cela étant dit, ça se trouve !

    Je note le k ième sommet du polygone.. L'idée la plus immédiate est de voir le polygone régulier comme la suite des images du premier point par la rotation de centre G(xG; yG), le centre du polygone, et d'angle .

    Comme le triangle est isocèle en G, la hauteur issue de G est aussi bissectrice de l'angle , et coupe en son milieu. On a alors (expression du sinus dans un triangle rectangle). En notant , on peut :

    - Construire G géométriquement, il est à l'intersection des deux cercles de centres respectifs et et de rayon (Il y a deux intersections, on en choisit une)
    - Trouver ses coordonnées : c'est un peu plus délicat mais ça marche pareil, de on déduit , relation qui permet d'exprimer xGou yG en fonction de l'autre, selon si les abscisses des deux premiers points sont différentes ou non.

    En supposant qu'elles le sont, on a

    On injecte cette relation dans l'égalité , et on récupère le trinôme en yG suivant :

    , qui doit être nul.

    Si tu as un solveur, c'est bon, tu choisis une des deux solutions. Sinon... Bah, mon expression doit quand même pouvoir se réduire à quelque chose d'un peu moins laid, et puis après, calcul du discriminant, tout ça... Deux solutions pour yG, on en choisit donc une, qu'on remplace par sa valeur dans l'expression de xG.

    Ouf ! Maintenant, Je me place dans un repère centré en G. Dans ce repère, l'image de
    -Est situé à la même distance de l'origine, donc
    -Forme un angle de avec la droite précédente, d'où l'on déduit
    , à condition que yk soit non nul ou que xk soit positif (de même pour k+1)

    Système que l'on doit pouvoir résoudre, (un solveur déjà tout prêt qui le ferait pour nous serait idéal). On a alors plus qu'à retrancher les coordonnées de G aux coordonnées ainsi trouvées, et on a les coordonnées du k+1 - ième sommet en fonction du k-ième.

    Comme je l'ai dit, ce n'est peut être pas très applicable et je m'en excuse.

    (Linkounet, ta relation n'est vérifiée que si le premier point est situé sur l'axe des abscisses, et à droite... On doit rajouter un décalage dans le cas contraire, il me semble).

  5. A voir en vidéo sur Futura
  6. #5
    Snowey

    Re : [Geometrie] Liens entres les coordonnées des sommet d'un Polygone regulier.

    Oui, Likounet à tout à fait raison, tu peux d'abord travailler sur le cercle centré en 0, puis effectuer un translation vers le centre du polygone réel (et donc de son cercle circonscrit).

    Bon, mais si tu as réellement absolument besoin d'une méthode ayant uniquement comme données ces trois-ci , voilà comment tu peux trouver les coordonnées.

    L'idée est tout simplement la même que précédemment: trouver le cercle circonscrit au polygone réguler à n cotés et opérer par la rotation de centre et d'angle . Les sommets du polygones étant alors données par les composition successives de cette fonction .
    Il te suffit, un fois le centre et le rayon r trouvés, d'appliquer la rotation en compositions successives pour obtenirs tous les sommets, images de A seulement par la rotation considérée. Ainsi, le k-ième sommet en partant de A aura pour affixe , soit en coordonnées cartésiennes et.
    Tu peux de cette manière obtenir les affixes de tous les points du polygone considéré.

    Pour trouver R, il suffit de considérer la médiatrice du segment , sur laquelle le centre du cercle circonscrit au polygone considéré e trouve (puisqu'il est régulier) et de remarquer qu'on a la condition suivante sur les angles: . On a alors, en utilisant les deux triangles rectangles qui se forment (fais une figure rapide, tu verras desquels je parle) et en calculant rapidement, .
    Reste enfin le centre a calculer. En réalité, il en existe deux, tout comme il existe exactement deux polygones réguliers à n sommets (côtés donc), symétriques l'un de l'autre par rapport à l'axe passant par les points A et B considérés. Les deux centres que tu peux trouver son donc symétriques par rapport à cette droite.
    Quoiqu'il en soit, un centre peut être vu comme l'intersection des deux cercles de centres respectifs A,B et de même rayon R (le R considéré plus haut, bien sur !).
    Voilà l'équation à résoudre pour trouver ce centre, ou du moins celle que j'ai trouvé (il doit exister des formules sur internet, je ne les ai pas regardées, mais fais-le, car plusieurs erreurs ont malheureusement pu se glisser dans ce calcul long, très long et vraiment fastidieux ...):

    .
    Celà revient à calculer les racines d'une polynôme de degré 2, parfaitement défini ! se déduit rapidement (appartenance à un des deux cercles définis plus haut, c'est à dire qu'il vérifie par exemple ( ).

    Et voilà, une fois ce pont très particulier défini, tu peux calculer toutes les coordonnées de tous les sommets de tous les polygones réguliers à n cotés (ou sommets) qui ont A et B comme sommets consécutifs !
    Tout ça uniquement avec ces cinq données !

    J'espère avoir pu t'être utile dans la recherche de ces points. J'ai essayé de faire l'étude en respectant l'esprit de ta question, c'est à dire en se basant sur les coordonnées cartésiennes de points et en travaillant exculivement avec les données et presque uniquement elles

    Amicalement,

    Snowey (ouf !)
    "... I am the master of my fate, I am the captain of my soul." Henley

  7. #6
    Mikiisa

    Re : [Geometrie] Liens entres les coordonnées des sommet d'un Polygone regulier.

    Salut et merci à tous pour vos réponses. Je doit avouer que j'ai réussi à résoudre le problème tout seul ^^. En fait je suis simplement partie du principe que le n-eme sommet est l'image du (n-2)-eme sommet par la rotation de centre le (n-1)-eme sommet et d'angle (n-2)pi/n.
    Pour l'expression j'ai utiliser la formule avec les complexe: z'=(cos(a)+isin(a))*(z-w)+w avec a l'angle, z l'affixe du pts et w l'affixe du centre. J'ai développer, séparer partie réelle/imaginaire et j'ai eu mes formules pour les coordonnées: Partie réelle = x, partie imaginaire = y.

    Merci pour vos réponse en tout cas =)

  8. #7
    Tryss

    Re : [Geometrie] Liens entres les coordonnées des sommet d'un Polygone regulier.

    J'allais écrire un post sur cette méthode justement

    Elle a d’ailleurs le bon gout d'être facilement implémenté et de nécessiter peu de calculs (on peut en effet ne calculer qu'une seule fois le sinus et le cosinus)

    Par contre pour des polygones à un très grand nombre de cotés, on pourrait voir apparaitre une accumulation d'erreur due à l'imprécision sur le calcul des sinus et cosinus (je doute qu'elles se compensent).

  9. #8
    Mikiisa

    Re : [Geometrie] Liens entres les coordonnées des sommet d'un Polygone regulier.

    Effectivement, je me confronte à des gros problème d'approximation. Le but de mon projet est en fait de réaliser un programme qui pave un plan à partir d'un polygone de base. J'utilise la classe java.awt.Polygon qui a le très mauvais goût d'être défini par des coordonnées entières :s. En effet elle représente le polygone comme 2 tableau d'entier (int[] x et int[] y) contenant les abscisse/ordonées des points et un entier n représentant le nombre de sommet du polygone. Depuis hier j'ai plutôt bien progresser, mon programme arrive désormais à tracer des polygone régulier très facilement et a tracer les images ce polygone par diverse transformation (translation/rotation/symétrie). Sauf que voilà, lorsqu'on utilise les formule pour calculer les coordonnées, comme par exemple celles que j'ai donner dans le message précédent pour la rotation, on vois clairement que ces coordonnées n'ont aucune chance d'être entière or pour les placer dans mes tableau int[] x et int[] y (qui sont donc des tableau d'entier) je suis obliger de les transformé en entiers et donc d'arrondir.

    Du coup quand je veux pavé j'obtient des truc un peu crade genre:

    Nom : Capture d’écran 2011-11-10 à 16.53.23.jpg
Affichages : 1066
Taille : 167,6 Ko

    =S, enfin on j'vais déjà avancer comme çà et je m'occuperais des "finitions" à la fin parceque j'ai encore pas mal de boulot avec tous ce qui concerne "l'interface utilisateur" du programme :s

Discussions similaires

  1. Somme des angles d'un polygone de n côtés
    Par invite54ae9c79 dans le forum Mathématiques du collège et du lycée
    Réponses: 4
    Dernier message: 22/05/2009, 20h33
  2. Produit des longueurs des diagonales d'un polygone régulier
    Par Flyingsquirrel dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 01/04/2009, 12h57
  3. [Géométrie] coordonnées d'un point
    Par invitee305c966 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 12/03/2009, 18h49
  4. Somme des angles d'un polygone
    Par kNz dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 11/11/2006, 18h12