IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[GEOMETRIE] Cercle inscrit dans un polygone


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier
    Avatar de bebeours
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 103
    Points : 123
    Points
    123
    Par défaut [GEOMETRIE] Cercle inscrit dans un polygone
    Bonjour,

    Je recherche un algorithme me permettant de calculer le plus grand cercle possible inscrit dans un polygone (défini par l'ensemble de ses sommets x,y), c'est à dire les coordonnées de son centre et son rayon.

    Si vous avez des pistes, un lien, une idée ...

    Merci pour votre aide.

  2. #2
    Membre expérimenté Avatar de alexrtz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 639
    Points : 1 362
    Points
    1 362
    Par défaut
    Salut,

    Je dirais :
    - calculer le barycentre du polygoone
    - calculer les distances entre le barycentre et chacun des côtés
    - prendre la plus petite
    - ce qui fait que tu as le centre et le rayon du cercle

  3. #3
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    Salut,

    Une premiere piste : tu pars d'un sommet, et tu suis la bissectrice. pour chaque point de la bissectrice, tu peux tracer un cercle tangent aux deux cotes. Il suffit ensuite de rechercher sur cette bissectrice quel est le plus grand rayon de cercle que l'on peut tracer sans couper un autre cote.

    Mais ca ne gere pas tous les cas, par exemple si aucun des trois cotes que touche le plus grand cercle inscrit ne sont consecutifs.

    A+

  4. #4
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    re salut

    Le probleme est peut-etre beaucoup plus simple si on ne considere que des polygones convexes. Est-ce le cas ?

    A+

  5. #5
    Membre régulier
    Avatar de bebeours
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 103
    Points : 123
    Points
    123
    Par défaut
    Citation Envoyé par rurouni alex
    Salut,

    Je dirais :
    - calculer le barycentre du polygoone
    - calculer les distances entre le barycentre et chacun des côtés
    - prendre la plus petite
    - ce qui fait que tu as le centre et le rayon du cercle
    Ca ne fonctionnera pas car mes polygones peuvent être concaves, dans ce cas il est possible que le barycentre (appelé aussi centroid du polygone) soit à l'extérieur du polygone !

  6. #6
    Membre régulier
    Avatar de bebeours
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 103
    Points : 123
    Points
    123
    Par défaut
    Citation Envoyé par Kangourou
    re salut

    Le probleme est peut-etre beaucoup plus simple si on ne considere que des polygones convexes. Est-ce le cas ?

    A+
    Hélas mes polygones peuvent être concaves, ils le sont d'ailleurs presque tous !

    Les solutions que vous proposez me paraissent très couteuses en temps de calcul. Enfin il semble qu'il n'existe pas de méthode déterministe pour résoudre ce problème c'est pourquoi il faudrait que je trouve une méthode stochastique, afin de calculer une solution optimale. Le problème est en fait beaucoup plus complexe qu'il en a l'air.

    Merci pour vos réflexions.

  7. #7
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    Salut,

    il y a peut etre une solution 'propre", en passant par le diagramme de Voronoi du polygone.
    Commencons par un ensemble de points : le diagramme de Voronoi est un ensemble de segments de droites (ou eventuellement de demi-droites) qui sont chacun equidistant a 2 points. la ou 3 aretes du diagramme, on a un cercle qui passe par 3 points, et le plus grand cercle passant par 3 points aura son centre sur un sommet du diagramme.

    Maintenant, il est possible de tracer la meme chose pour des ensembles de points et de segments et donc on peut tracer le diagramme de Voronoi d'un polygone. A priori, en regardant tous les sommets du diagramme, on doit pouvoir trouver le plus grand cercle inscrit.

    cf lien pour une implementation de Voronoi (a refaire, ca doit etre long...) :
    http://www.cosy.sbg.ac.at/~held/proj...oni/vroni.html

    A+, et bon courage ...

  8. #8
    Membre régulier
    Avatar de bebeours
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 103
    Points : 123
    Points
    123
    Par défaut
    Effectivement je pense que c'est une bonne piste. Merci pour le lien, je ne savais pas qu'on pouvait appliquer Voronoi sur des polygones.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trouver le cercle inscrit d'un polygone irregulier
    Par olibara dans le forum Mathématiques
    Réponses: 16
    Dernier message: 11/09/2009, 12h52
  2. Trouver des points inscrits dans un cercle.
    Par goast dans le forum Mathématiques
    Réponses: 4
    Dernier message: 15/07/2009, 15h05
  3. Savoir si un point est dans un polygone.
    Par poly128 dans le forum Langage
    Réponses: 8
    Dernier message: 18/11/2008, 10h34
  4. Modification d'une "requête" inscrite dans la base
    Par Tardiff Jean-François dans le forum Access
    Réponses: 5
    Dernier message: 07/04/2006, 16h51
  5. Savoir si un point est inclus dans un polygone quelconque
    Par SuperBIBI dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 02/08/2005, 20h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo