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 :

Distribution de point à distance uniforme dans une surface carrée


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 25
    Points
    25
    Par défaut Distribution de point à distance uniforme dans une surface carrée
    Salut,

    Je cherche a distribué X point dans un carré de façon a se que tout les point soivent à peut prêt a la même distance.

    J'arrive pas a trouvé des mot clef pour cette recherche.

    SVP, avez vous une solution / lien / ou encore le nom du problème pour que je puisque trouvé une solution.

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    A la même distance de ? D'un point central ? Que la distance entre chaque point soit constante ?

    Sinon ca me fait penser à un problème de pavage (régulier):
    http://fr.wikipedia.org/wiki/Pavage_...r%C3%A9guliers
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 25
    Points
    25
    Par défaut
    Il faut que la distance soivent le plus constant possible entre eux ( Ainsi que la bordure si possible). Je ne cherche pas une distance parfaite entre les points, mais quelque chose d'assez proche visuellement.


    Pour l’instant je place des points aléatoirement, et je les bouge a l'opposer du point le plus proche sans tenir compte de la bordure.

    Le resultat actuelle :


    Les points sont bien plus espacé que en pur aléatoire, mais il reste encore des problème.
    ( Par exemple avec X point aligne , le résultat ne serra pas concluant )

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    peut-être peux-tu t'inspirer de ces méthodes d'échantillonnage : http://en.wikipedia.org/wiki/Supersa...pling_patterns, le disque de poisson ou le jitter.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Gannon Voir le message
    Salut,

    Je cherche a distribué X point dans un carré de façon a se que tout les point soivent à peut prêt a la même distance.

    J'arrive pas a trouvé des mot clef pour cette recherche.

    SVP, avez vous une solution / lien / ou encore le nom du problème pour que je puisque trouvé une solution.

    Merci d'avance
    En fait, tu as un carré et tu cherches à le transfomer en "image" de X pixels...
    La distance entre 2 pixels est constante (sauf en diagonal, mais on peut s'arranger)...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    N = sqrt(X)
    D = côté du carré/N
     
    pour tout i de 0 jusqu'à N
         x = D/2 + i*D
     
         pour tout j de  0 jusqu'à N
     
             y = D/2 +  j*D
     
             point(x,y) = 1
     
         fin pour
    fin pour
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    tout d'abord merci de vous intéressez a mon problème.

    @magelan

    La méthode que vous n'avez proposé n'est malheureusement pas applicable a nom problème. Les différentes technique évoqué dans le lien que vous avez posté permet de placer des points sur un surface en assurant qu'il existe une distance minimal ( et maximal ) entre chaque point. Elle ne permet d'avoir une distance constante entre chaque point en remplissant tout l'espace disponible.


    @souviron34

    Enfaîte votre méthode méthode est présentant dans le lien de magelan (Grid algorithm ). Elle posse un problème sur le nombre de point qui doit forcement être une puissance de 2 ( 1 , 4 , 16 , ... )

    Merci, si vous avez autre idées, je prend

    Je vais regardé l’algorithme de 'Poisson Disc algorithm'. Il aura peut être des parti de l'algo qui pourront n’être utile.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Gannon Voir le message
    Elle posse un problème sur le nombre de point qui doit forcement être une puissance de 2 ( 1 , 4 , 16 , ... )


    Pas du tout..

    Si X = 25, N=5..
    Si X = 16, N=4..
    Si X = 9, N=3...

    Je ne vois pas où tu vois une puissance de 2....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  8. #8
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 25
    Points
    25
    Par défaut
    Ben eeuu... , peut être que je ne suis mal exprimer, mais :

    9 = 3^2
    16 = 4^2
    25 = 5^2

    Si je désire 10 point, cela ne fonctionnera pas. Ou alors j'ai mal comprit un truc

  9. #9
    Invité
    Invité(e)
    Par défaut
    slt,

    ca me fait penser aux forces. lidee cest de calculer la force exercee par chaque point sur les autres. A force d'iteration tu devrais parvenir a un graphe dont les noeuds sont a peu pres bien positionnes (loin les un des autres).

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Gannon Voir le message
    Ou alors j'ai mal comprit un truc
    Non, tu t'es mal exprimé

    Carré, pas puissance de 2...

    Bon, le problème qu'on a c'est que ta question est imprécise :

    de façon a se que tout les point soivent à peut prêt a la même distance.
    Il faut que la distance soivent le plus constant possible entre eux
    Peux-tu définir plus ? Est-ce un pourcentage ? Une erreur max ? .....

    Ou, mieux encore, nous dire ce que tu veux faire...

    Parce que là, on tatonne...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  11. #11
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Citation Envoyé par galerien69 Voir le message
    ca me fait penser aux forces. lidee cest de calculer la force exercee par chaque point sur les autres. A force d'iteration tu devrais parvenir a un graphe dont les noeuds sont a peu pres bien positionnes (loin les un des autres).
    Je pensais à la même chose. Sous MATLAB, j'ai utilisé distmesh à une époque.

    For the actual mesh generation, DistMesh uses the Delaunay triangulation routine in MATLAB and tries to optimize the node locations by a force-based smoothing procedure. The topology is regularly updated by Delaunay. The boundary points are only allowed to move tangentially to the boundary by projections using the distance function. This iterative procedure typically results in very well-shaped meshes.
    Voir si cela peut convenir...
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  12. #12
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 25
    Points
    25
    Par défaut
    Je vais essaye de reprendre avec un exemple pour essaye être le plus clair possible.

    J'ai une surface carré de largeur X, et un nombre de point Y .

    Il faut imaginer que ces point sont des aimants qui se repousse entre eux ainsi qu'avec la bordure.

    Il faut que l’écartement minimal entre les autre points (et la bordure) soit la plus grande possible.

    J'ai essaye de faire un dessin, mais j'suis pas très doué



    Est-ce que c'est plus clair ?

    @galerien69 et @Dut, je pense que cela peut résoudre le problème, je teste donc cela

    Merci

  13. #13
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Dans ce cas pose une fonction cout (somme des carrés de la distance entre tous les points) de et tu as un bon vieux problème d'optimisation où il maximiser cette fonction.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

Discussions similaires

  1. Distribution homogène de points dans une surface rectangulaire
    Par lilivounet dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 23/02/2009, 18h50
  2. Réponses: 13
    Dernier message: 03/11/2008, 23h56
  3. [Geometrie] distance parcourue dans une sphere
    Par anykeyh dans le forum Mathématiques
    Réponses: 4
    Dernier message: 02/08/2007, 09h55
  4. Recherche d'une zone uniforme dans une image
    Par mm2405 dans le forum Traitement d'images
    Réponses: 14
    Dernier message: 26/04/2007, 14h23
  5. nuages de points sont-ils dans une zone??
    Par smedini dans le forum Algorithmes et structures de données
    Réponses: 26
    Dernier message: 21/02/2006, 11h01

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