Enveloppe convexe d'un nuage de points

Fermé
raven - 24 mars 2016 à 19:03
raven028 Messages postés 3 Date d'inscription lundi 28 mars 2016 Statut Membre Dernière intervention 31 mars 2016 - 31 mars 2016 à 00:24
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

ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
26 mars 2016 à 16:41
Bonjour

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

Cdlmnt
1
raven028 Messages postés 3 Date d'inscription lundi 28 mars 2016 Statut Membre Dernière intervention 31 mars 2016 1
31 mars 2016 à 00:24
D'accord je comprends. Vraiment je tiens a vous remercier du fond du coeur.
Cordialement
1
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
27 mars 2016 à 10:34
Bonjour

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

Cdlmnt
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
28 mars 2016 à 10:46
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
raven028 Messages postés 3 Date d'inscription lundi 28 mars 2016 Statut Membre Dernière intervention 31 mars 2016 1
28 mars 2016 à 17:33
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
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
Modifié par ccm81 le 29/03/2016 à 11:47
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
raven028 Messages postés 3 Date d'inscription lundi 28 mars 2016 Statut Membre Dernière intervention 31 mars 2016 1
29 mars 2016 à 21:58
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
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
Modifié par ccm81 le 29/03/2016 à 23:03
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