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

Mathématiques Discussion :

Récupérer les points du contour d'une forme formée de carés


Sujet :

Mathématiques

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut Récupérer les points du contour d'une forme formée de carés
    Voila le problème:


    J'ai un tableau à 2 dimensions qui représente des cases allumées (noir sur l'image) ou éteintes.
    Je cherche à récupérer la liste des coordonnées des points du contours (bleu sur l'image) de la forme formée par les cases allumés.

    Je n'arrive pas à obtenir un algorithme simple en particulier à cause des "virages sérés".

    Quelqu'un aurait il une idée ?

    Merci

  2. #2
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    Tu pars par exemple "en haut à gauche", soit le sommet de coordonnées Y maximale puis x minimale. Puis tu parcours ton périmètre toujours dans le même sens, par exemple trigo...

  3. #3
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Autre solution possible: tu vires tous les points qui sont connectés à 4 carrés.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut
    Merci, en fait j'ai trouvé tout seul...

  5. #5
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Citation Envoyé par supergrey Voir le message
    Merci, en fait j'ai trouvé tout seul...
    Tu peux passer le sujet en "résolu" alors...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut
    OK, alors je post ma méthode. Donc je commence par chercher un point qui a un carré affiché et un carré caché, ensuite pour parcourir le tour je regarde d'abord en dessus si le carré gauche est différent du droit ça veut dire qu'il s'agit du point suivant (ou précédent), ensuite je fait pareil pour en dessous, puis gauche puis droite, j'ai au final le point suivant et le point précédent y'a plus qu'a continuer jusqu'à être revenu au début.

  7. #7
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Citation Envoyé par supergrey Voir le message
    OK, alors je post ma méthode.
    Ce que je voulais dire, c'est que tu peux spécifier dans le titre du sujet que le sujet est résolu donc clos en cliquant sur le bouton "résolu" en bas de ce post... ça évitera au prochain qui passera de réfléchir...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut
    Oui j'avais bien compris, mais ce n'était pas très logique de mettre résolu alors que la méthode qui m'a permet de résoudre mon problème n'était pas visible, donc je l'ai mis pour les suivants.

  9. #9
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Par contre je n'ai pas super compris ta méthode...

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut
    Bein, on a un matrice avec des cases à 1 et des cases à 0. On travaille sur les intersections, donc on a 4 cases autour, on regarde les 2 en dessus, si il y en a une à 0 et une à 1 ca veut dire qu'on a une ligne de séparation du point courant au point en dessus, on fait pareil pour les 2 carré à notre gauche, puis en bas puis à droite... j'aurais du mal à mieux expliquer donc, bonne réflexion !

  11. #11
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Citation Envoyé par supergrey Voir le message
    j'aurais du mal à mieux expliquer donc, bonne réflexion !
    C'est bon, j'ai enfin compris... mais quand il faut réfléchir sur une explication, c'est que l'explication n'est pas limpide

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut
    quand il faut réfléchir sur une explication, c'est que l'explication n'est pas limpide
    Je vois une autre possibilité...

  13. #13
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Citation Envoyé par supergrey Voir le message
    Je vois une autre possibilité...
    Avec ça:

    Donc je commence par chercher un point qui a un carré affiché et un carré caché, ensuite pour parcourir le tour je regarde d'abord en dessus si le carré gauche est différent du droit ça veut dire qu'il s'agit du point suivant (ou précédent), ensuite je fait pareil pour en dessous, puis gauche puis droite, j'ai au final le point suivant et le point précédent y'a plus qu'a continuer jusqu'à être revenu au début
    l'autre possibilité n'est pas envisageable!

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

Discussions similaires

  1. [Débutant] Récupérer les points d'une courbe fittée
    Par amand237 dans le forum MATLAB
    Réponses: 1
    Dernier message: 23/04/2011, 14h02
  2. Réponses: 3
    Dernier message: 24/04/2010, 14h46
  3. Acceder a des points de contours d'une forme dessinee?
    Par pgerard dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 03/04/2010, 08h22
  4. Récupérer les deux premières lettres d'une chaine
    Par moscovisci dans le forum ASP
    Réponses: 3
    Dernier message: 10/01/2006, 14h53
  5. Réponses: 8
    Dernier message: 02/11/2005, 14h16

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