Enveloppe convexe d'un nuage de points

raven -  
raven028 Messages postés 3 Statut Membre -
Salut a tous j'ai un projet ou j'ai un nuage de points et je dois former le polygone convexe je dois en quelque sorte faire l'enveloppe convexe d'un nuage de points (Parcours de Graham)JE désire faire un code Vba vous pouvez m'aider?

9 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Une tentative mais .... très personelle !
    http://www.cjoint.com/c/FCApOmeOnRR

    Cdlmnt
    1
  2. raven028 Messages postés 3 Statut Membre 1
     
    D'accord je comprends. Vraiment je tiens a vous remercier du fond du coeur.
    Cordialement
    1
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Pour aller un peu plus loin
    http://www.cjoint.com/c/FCBiHCEut8R

    Cdlmnt
    0
  4. raven
     
    Bonjour ccm81 c'est très gentil de votre part de répondre. je pense que vous l'avez brillament fait et je suis impressionnée.
    Mais j'ai 3 questions
    1- J'ai essayé avec d'autres valeurs de x et y plus grandes x=4000 ou plus selon mon projet mais le graphe devient noir et flou et je vois pas l'enveloppe bien que les valeurs xe et ye sont a coté.Peut on améliorer ou étendre les limites du graphe pour voir l'enveloppe?
    2- Aussi j'ai pas compris le bouton nouvel tirage a quoi ca sert? car j'ai vu les valeurs changées quand j'y clique
    3- En réalité si au début on suppose qu'on a les valeurs de x, y, z pour chaque point comment avoir en meme temps les z=ze qu'on avait au début.Toutefois je précise qu'on ait bien en 2D. Je veux extraire les zi dans la colonne C du nuage qui sont en face des Xe ou Ye pour les mettre dans la colonne F et avoir xe, ye, ze alignés par un fonction vba ou autre. J'espere que vous m'avez compris. Voici le fichier joint qui vous montre le problème.
    J'espère vous relire..Cordialement
    http://www.cjoint.com/c/FCBq0RMOsCa
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    R1. Il te suffit de mettre les echelles des axes au format automatique (tout cocher)
    R2. Il sert uniquement à tester, il fabrique une nouvelle simulation (aléatoire) pour les xy
    R3. Voir fichier joint à tester
    http://www.cjoint.com/c/FCCiLWNjAIR

    Q. Peux tu me donner un ordre de grandeur du nombre de points S'il est très important, il a moyen d'accélérer l'eécution.

    RQ. Tu pourrais t'inscrire comme membre sur CCM, c'est gratuit, ça facilite l'accès aux fichiers joints et tu as accès à la messagerie personnelle pour le même prix.

    Cdlmnt
    0
  7. raven028 Messages postés 3 Statut Membre 1
     
    Slt ccm81 j'ai essayé ca marche trés super bien et toutes les questions très ingénieusement répondues.
    Aussi j'ai fait mon inscription.
    Bon l'ordre de grandeur des points est variable il peut aller d'une dizaine,centaine jusqu'à N(avec N égale la limite des lignes dans excel plus de 1000 points même) je veux faire quelque chose de général.

    J'espère ne pas etre fatiguant mais j'ai autre question autre.
    L'enveloppe des points que j'ai mis me donne avec un un programme une surface d'environ 28 ha. Alors qu'en réalité la surface réelle fait 25 ha.
    Donc on ne pourrais pas pour être plus précis gérer le programme de sorte que la précision soit max ainsi avec la ligne noire la ligne noire (voir fichier joint) ou bien c'est pas possible??

    https://www.cjoint.com/c/FCCpHkScpha
    0
  8. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    1. Pour 1000 points, ça devrait encore aller comme ça
    2. Il ne s'agit plus alors d'une enveloppe convexe comme demandé au départ, et en plus ton "enveloppe" ne passe plus forcément par des points existants !
    Tu as la solution d'insérer manuellement des points dans les colonnes xyze, comme les plages du graphique sont définies de façon dynamique, celui ci se mettra à jour automatiquement
    http://www.cjoint.com/c/FCDjVCoJUoR

    Bon courage
    0
  9. raven028 Messages postés 3 Statut Membre 1
     
    Slt ccm81 j'ai vu votre suggestion. Cependant je pensais a un truc. En fait mon problème c'est de tout automatiser pour faciliter la tâche à tout utilisateur(profane).Aussi j"ai adoré l'idée de créer la fonction polygone mais ca s'arrête a D20 alors qu'un polygone pourrait avoir plus de points pour son polygone que faire donc Est qu-on ne pourrait pas dans la fonction créée avoir une plage jusqu'à la derniere cellule non vide ? Ou tout simplement automatiser sans création de fonction et mettre le résultat a Range("N2")=AirePolygone.
    Ne peut on pas aussi automatiser la rechercheV pour l'ajout de nouveaux points.Ce serait l'idéal.J'espère ne pas trop vous demander vous avez fait tellement pour moi.
    Aussi je veus vous contacter a l'avenir commment faire.Merci
    0
  10. ccm81 Messages postés 11033 Statut Membre 2 434
     
    1. Est qu-on ne pourrait pas dans la fonction créée avoir une plage jusqu'à la derniere cellule non vide
    tu remplaces par
    =airepolygone(plageXe;plageYe)/10000
    qui te donne en plus le résultat en hectares
    2. Ne peut on pas aussi automatiser la rechercheV pour l'ajout de nouveaux points
    Presque, ....... avec un petit double-clic
    http://www.cjoint.com/c/FCDvbqztiqR
    3. Aussi je veus vous contacter a l'avenir commment faire
    Tu utilises le forum, et il y a plein d'intervenants qui pourront t'aider

    Cdlmnt
    0