#1 Wed 29 April 2009 20:21
- marie-aude
- Participant occasionnel
- Date d'inscription: 21 Apr 2009
- Messages: 23
relier points geoconcept
Bonjour à tous,
Comment on fait pour relier 2 pts par une droite avec le kit de geoconcept???
Je travaille avec la version 6.5 de geoconcept et je programme en c++.
Merci pour vos futures réponses
++
Hors ligne
#2 Thu 30 April 2009 10:02
- saispasfau
- Participant actif
- Date d'inscription: 28 Nov 2006
- Messages: 62
Re: relier points geoconcept
Bonjour.
N'étant pas expert en C++, je te donne les grandes lignes à suivre (les fonctions à utiliser) :
1. Créer ton objet dans le type / sous-type linéaire de destination en coordonnées (0;0) :
Code:
XGOOBJECT XgoCreateObject(XGOMAP xgoMapID, UINT wType, UINT wSubType, LONG lX, LONG lY);
2. Créer une nouvelle géométrie de genre linéaire :
Code:
XGOGEOMETRY XgoGeom_Create(XGOGEOMETRYKIND kind);
3. Ajouter tes 2 points à la géométrie créée :
Comme ta géométrie ne sera composée que d'une seule partie, il faut mettre ulPartIndex0=0
Code:
BOOL XgoGeom_AddPoint(XGOGEOMETRY xgoGeometry, ULONG ulPartIndex0, const LPXGOPOINT3D pXgoPoint3D);
4. Attribuer la géométrie à l'objet :
Code:
BOOL XgoGeom_SetToObject(XGOMAP xgoMapID, XGOGEOMETRY xgoGeometry, XGOOBJECT xgoObject);
Voilà l'algorithme à suivre.
@++
Saispasfau
Hors ligne
#3 Thu 30 April 2009 10:07
- marie-aude
- Participant occasionnel
- Date d'inscription: 21 Apr 2009
- Messages: 23
Re: relier points geoconcept
Merci Saispasfau,
Je te dirais si "Saisvrai" lol
je vais tester de suite
++
Hors ligne
#4 Thu 30 April 2009 11:17
- marie-aude
- Participant occasionnel
- Date d'inscription: 21 Apr 2009
- Messages: 23
Re: relier points geoconcept
J'ai testé l'algo que tu m'as donné...
Mais, évidemment, je n'arrive pas à le faire fonctionner.
J'ai déjà un sous type ponctuel défini et des pts qui s'affichent à l'écran. Pour les segments, je dois créer un nouveau type linéaire indépendant ???
En attendant une réponse, je vais faire en sorte de définir un type linéaire et faire l'algo que tu m'as donné mais du coup si ça marche j'aurai un sous type point et un autre linéaire mais qui vont servir tous les deux à représenter une trajectoire.
Merci d'avance
++
Hors ligne
#5 Thu 30 April 2009 11:36
- saispasfau
- Participant actif
- Date d'inscription: 28 Nov 2006
- Messages: 62
Re: relier points geoconcept
Alors...
Dans GeoConcept, Chaque sous-type a un genre de géométrie unique.
Donc dans ton sous-type où tu as tes points, tu ne peux créer que des objets points.
Pour créer des linéaires, tu dois indiquer un sous-type linéaire.
Tu auras bien au final un sous-type contenant tes points, et un sous-type contenant tes lignes.
A+
Hors ligne
#6 Thu 30 April 2009 11:40
- marie-aude
- Participant occasionnel
- Date d'inscription: 21 Apr 2009
- Messages: 23
Re: relier points geoconcept
Ok...
Comme je disais dans mon message d'avant c'est ce que je comptais faire.
Par contre, quand on crée un objet il faut mettre des coordonnées. Donc pour créer un point c'est facile mais pour un linéaire... je mets quoi?
Je vais tenter de mettre le point de départ... et ajouter à la géométrie le point d'arrivée...en espérant que ce soit bien ça.
Encore merci pour tes réponses rapides et claires.
à plus tard
Hors ligne
#7 Thu 30 April 2009 11:53
- saispasfau
- Participant actif
- Date d'inscription: 28 Nov 2006
- Messages: 62
Re: relier points geoconcept
Je n'ai jamais essayé de définir le X et Y, puis d'ajouter un point à la géométrie.
Par contre, dans GeoConcept, les champs X' et Y' correspondent aux coordonnées de la seconde extrémité.
Donc tu peux tenter :
1. créer l'objet en mettant en X et Y les coordonnées du premier point
2. indiquer dans X' et Y' les coordonnées du second point (via la structure XGOBIFIELDS)
Cela t'évite de manipuler directement la géométrie.
Bons tests.
A+
Hors ligne
#8 Thu 30 April 2009 17:12
- marie-aude
- Participant occasionnel
- Date d'inscription: 21 Apr 2009
- Messages: 23
Re: relier points geoconcept
Je dois avouer que je m'embrouille....je suis perdue
J'ai créé un objet avec Xgo_CreateObjetc(..., mon_point_departX, mon_point_departY)
Ensuite j'ajoutais le pt extrémité en passant par les géométrie... malheureusement je n'arrive pas à faire fonctionner cela. Au mieux ça affiche un point avec pour coordonnées celles que j'entre à la création de l'objet....
J'ai regardé dans l'aide du kit mais je ne vois pas trop comment utiliser XGOBIFIELDS... J'ai cru comprendre que le premier pt entré est celui d'une xtrémité du segment et le 2eme point l'autre extrémité. Mais comment l'appliqur l'objet?
Merci d'avance
MA
++
Hors ligne
#9 Thu 30 April 2009 17:51
- saispasfau
- Participant actif
- Date d'inscription: 28 Nov 2006
- Messages: 62
Re: relier points geoconcept
Pour utiliser les Builtin Fields, il faut appeler :
Code:
UINT XgoGetBuiltInFields(XGOMAP xgoMapID, XGOOBJECT xgoObject, LPXGOBIFIELDS lpxgoBIFields);
en passant en paramètre ton objet et une structure XGOBIFIELDS.
Puis tu instancies les valeurs de XGOBIFIELDS.biXP et XGOBIFIELDS.biYP avec les coordonnées de ton second point, et ça devrait rouler.
A++
Dernière modification par saispasfau (Thu 30 April 2009 17:52)
Hors ligne
#10 Sun 03 May 2009 20:57
- marie-aude
- Participant occasionnel
- Date d'inscription: 21 Apr 2009
- Messages: 23
Re: relier points geoconcept
Bonsoir Saispasfau,
J'ai réussi à afficher mon segment comme je le voulais... j'ai utilisé ta première méthode, c'est à dire:
créer un nouveau sous type "ligne" (par exemple) en en ajoutant a ce sous-type une géométrie dans laquelle j'ai mis le point de départ et celui d'arrivée.
Au début je n'y suis pas arrivée parce que j'avais fais une erreur de conversion pour des coordonnées (que je dois envoyer en long mais qui ne le sont pas dans mon code à cause de la précision....).
Si besoin, je mettrais mon code (c++) en ligne pour que ça puisse profiter à d'autres.
Encore merci Saispasfau pour ton aide précieuse.
à plus tard... (surement d'autres questions lol)
MA
Hors ligne