agrandir une géométrie quelconque
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

agrandir une géométrie quelconque



  1. #1
    invite80745236

    agrandir une géométrie quelconque


    ------

    Bonjour,

    Je suis programmeur et cherche à créer un programme qui permet d'agrandir une géométrie quelconque afin que tous les cotés du la géométrie finale soit à égale distances de ceux de la géométrie de départ.

    Je me suis basé sur l'origine pour les translations mais ça ne passe pour tout, par exemple si l'origine d'une figure en forme de 'T' se trouve à la base la translation ne se fait pas du bon côté mais s'il se trouve au centre en haut ça marche.

    Je recherche donc une formule mathématique me permettant d'avoir les coordonnées (X et Y seulement, je travaille en 2D) de chaque points de la géométrie finale.
    J'ai comme information les coordonnées de cahque point de la géométrie de départ, que me faut-il en plus comme information ?

    Merci

    -----

  2. #2
    invite80745236

    Re : agrandir une géométrie quelconque

    ou alors comment je pourrais définir mathèmatiquement l'intérieur et l'extérieur d'une géometrie à partir des coordonnées de chaque point ?

  3. #3
    Jeanpaul

    Re : agrandir une géométrie quelconque

    Ca serait bien de donner un exemple : on parle de polygones, de surfaces ouvertes ??

  4. #4
    ericcc

    Re : agrandir une géométrie quelconque

    Je ne suis pas completement sur de ce que tu veux faire. Si tu veux dessiner une forme plus grande mais identique dont tous les points sont à égale distance de la forme initiale cela va être difficile : essaye sur un carré, tu verras que tu as un problème aux angles.
    Sinon, et si tu peux accepter une certaine déformation, j'essaierai intuitivement le procédé suivant : tu calcules le barycentre de ta forme initiale, et tu crées ta nouvelle forme en multipliant la distance de chacun de tes points au barycentre par un facteur constant.

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

    Re : agrandir une géométrie quelconque

    Jean-Paul : Je parle de Polygones, que des géométries fermées

    ericcc : Pour les distances égales je suis d'accord avec toi mais je parlais des distances des segments et non des points.

    Pour donner un exemple (voir pièce jointe):
    _Prenons le contour d'un 'I' je veux calculer les points du même contour mais un peu plus grand. Ca donne un 'I' (celui de départ le noir) dans un autre 'I' (celui de fin le rouge).
    _Le problème est que si je me base sur le baricentre (qui se trouve au mileu du 'I') pour effectuer mes translations, J'obtiens la figure B de la pièce joint alors que je veux obtenir la A.

    Il faudrait que j'ai deux bases de translation se situant au centre des parties supérieur et inférieur du 'I'. Mais comment je peut définir par des calculs le nombre de base de translation qu'il y a dans un polygone quelconque et les points de se polygone qui leurs sont associés?
    Y a-t-il une autre solution ? une autre façon de voir le problème ?

    Merci
    Images attachées Images attachées  

  7. #6
    Jeanpaul

    Re : agrandir une géométrie quelconque

    Je crois avoir compris ce que tu veux faire. Une translation ne convient pas parce que tu veux décaler une fois vers l'extérieur et une fois vers l'intérieur.
    Voilà une façon de faire. J'essaie de détailler mais pas trop sinon ça va mettre des pages.
    Prenons le cas d'un triangle ABC. Les coordonnées de A sont {xA ; yA} et idem pour les autres.
    On cherche le point A1 décalé de la longueur d. Le vecteur AB a pour composantes {xB-xA ; yB-yA} et sa norme r est la racine carrée de (xB-xA)² + (yB-yA)². D'où un vecteur unitaire uAB obtenu en divisant le vecteur AB par sa norme. On écrit que le vecteur A A1 est le produit mixte de uAB par le vecteur w de composantes {0;0;eps} où eps vaut +1 si tu vas vers dehors et -1 si tu vas vers dedans (tu dois décider).
    AA1 a donc pour composantes dans le plan {d.eps(yB-yA)/r ; d.eps(xA-xB)/r}
    Ca donne les coordonnées de A1 {xA + d.eps(yB-yA)/r ; yA + d.eps(xA-xB)/r}
    et tu fais pareil pour B1 {xB + d.eps(yB-yA)/r ; yB +d.eps(xA-xB)/r}

    Tu fais pareil pour les autres segments. Ainsi tu décales BC qui vont te donner B2 et C1. L'intersection des segments A1B1 et B2C1 te donne le nouveau point B.

    C'est assez facile à programmer mais il est clair qui'l faut à chaque fois définir le signe de eps.

  8. #7
    invite80745236

    Re : agrandir une géométrie quelconque

    Merci JeanPaul, il ne me reste plus qu'à déterminer le signe pour chaque segment, Mais sans visuel ça va pas être facile

  9. #8
    ericcc

    Re : agrandir une géométrie quelconque

    En fait si je comprends bien tu veux construire un pantographe visuel. Le pantographe est un très vieil instrument de dessin qui servait à agrandir des figures.
    Regarde ici : http://db-maths.nuxit.net/CARzine/articles/art93/ et sur Wikipedia

Discussions similaires

  1. une projection quelconque est-elle toujours diagonalisable?
    Par invite613a4e44 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 28/12/2005, 06h45
  2. Agrandir ISS?
    Par ~DuF~ dans le forum Astronautique
    Réponses: 26
    Dernier message: 21/10/2005, 13h56
  3. Agrandir une fenêtre
    Par Tom-Tom dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 11/08/2004, 15h26
  4. comment agrandir une police en dessus de la taille 72????
    Par invite44ece762 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 06/07/2004, 22h08