Accueil > Forum > > > > Retrouvé les coordonnees 3d depuis la 2D
Retrouvé les coordonnees 3d depuis la 2D
samedi 7 avril 2007 à 17:38:28 |
Retrouvé les coordonnees 3d depuis la 2D

Seboo
|
Bonjour, J ai un probleme pour retrouver les coordonnees en 3d de la souris. J'utilise sous glut un lookat en -5,5,5 qui regarde en direction 0,0,0 soit selon le vecteur (-5,5,5). Ce que l'on voit à l'ecran comme forme est selon le plan centré en -5,5,5 selon le vecteur normal (-5,5,5) (donc d'equation -5x+5y+5z -75=0). Donc ma premiere question est: comment connaitre la position de la souris en M(X,Y,Z) sur ce plan sachant quel est en en A(x,y) sur l'ecran. A partir de la, je peut obtenir une equation de droite. Et j'aurai un autre probleme qui s'en suit: Comment savoir si une droite coupe un plan delimité par 4points (x,y,z)? Merci pour votre précieuse aide.
|
|
samedi 7 avril 2007 à 20:50:30 |
Re : Retrouvé les coordonnees 3d depuis la 2D

luhtor
|
Réponse acceptée !
On fait ca avec la fonction "gluUnProject". Look sur google pour les détails, ou sur nehe.
|
|
samedi 7 avril 2007 à 23:51:31 |
Re : Retrouvé les coordonnees 3d depuis la 2D

Seboo
|
Sinon avec le piking ... mais j'ai eu du mal à comprendre leur emploi ... Enfaite j'aurai bien voulu creer mes propres fonctions car je modifie les valeurs de mes coordonnees de coordonnee point que j ai stocker dans des variables... donc sa rend compliqué... enfin merci au moin je suis orienté vers une idee certaine.
|
|
dimanche 8 avril 2007 à 00:17:16 |
Re : Retrouvé les coordonnees 3d depuis la 2D

luhtor
|
Réponse acceptée !
gluUnProject a juste besoin de la donnée de profondeur qu'on récupère avec ReadPixel, ca permet donc d'obtenir un point très précis. Je n'utilise que ca personnellement. Le picking te donnera rien en ce qui concerne la position exacte pointée par la souris.
|
|
dimanche 8 avril 2007 à 00:25:51 |
Re : Retrouvé les coordonnees 3d depuis la 2D

Seboo
|
ok merci je vais tester ta methode sa à l'aire d'etre ce que je voulait m'amusé à programmer lol ThX
|
|
dimanche 8 avril 2007 à 01:36:06 |
Re : Retrouvé les coordonnees 3d depuis la 2D

Seboo
|
Finalement je vais utiliser le picking, car il me permet de savoir quelle face du cube j ai selectionné :"Comment savoir si une droite coupe un plan delimité par 4points (x,y,z)?" Cependant, mon objet selectionné est definit par un glPushName(1 à 7) et un glLoadName(1 à 9) et eventuellement un autre glPushName. Ma question enfaite comment extraire le nom de l'objet, le nom de l'ensemble au quelle il appartient et eventuellement le nom de l'ensemble de l'enssemble auquelle il appartient car si j ai bien compris on peut imbriquer 32 glPushName. (mon probleme vient au niveau du processe Hit que je ne comprends pas et dont le printf n'a pas d'effet sur ma fenetre glut.)
merci pour votre aide.
|
|
dimanche 8 avril 2007 à 13:00:01 |
Re : Retrouvé les coordonnees 3d depuis la 2D

Seboo
|
Bon bas j ai finalement crée un glLoadName composé de " (la valeur du glPushName*10)+(valeur du glLoadName initiale) ". Sa marche mais je ne trouve pas sa tres propre ....Quelqu'un saurait comment faire pour extraire d'un objet cliqué leglPushName correspondant (et voir tout les autre si j'en ai imbriqué plusieur) ??
Si je fait reponse acceptée cela fermera la conversation ?
Merci
|
|
dimanche 8 avril 2007 à 18:23:59 |
Re : Retrouvé les coordonnees 3d depuis la 2D

luhtor
|
Non ca fermera pas la conversation.
Pour le picking, faut récupérer toute la pile de "hit". Ca te donne tous les objets sous le curseur. Pour savoir a quel ensemble appartient ton object, c'est a toi d'utiliser des indices dans tes glLoadName et glPushName qui te permettent de remonter.
|
|
dimanche 8 avril 2007 à 18:59:37 |
Re : Retrouvé les coordonnees 3d depuis la 2D

Seboo
|
Justement je fait passer le buffer et le HITS : void processHits(GLint hits, GLuint buffer[]){
unsigned int i, j; GLuint names, *ptr, minZ,*ptrNames, numberOfNames; int numFaceCarre[2],tmpFace,tmpCarre;
ptr = (GLuint *) buffer; minZ = 0xffffffff; for (i = 0; i < hits; i++) {
names = *ptr; ptr++; if (*ptr < minZ) {
numberOfNames = names; minZ = *ptr; ptrNames = ptr+2;
} ptr += names+2;
} }
Enfaite grace à : ptrNames[0] j'arrive à extraire le glLoadName(); correspondant mais minZ et numberOfNames ne me donnent rien du tout. Enfaite j'arrive pas à comprendre comment naviguer dans la pile. Pourtant si dans mon affichage des objets je place glLoadName( nom_glPushName*10 + nom_glLoadName); au lieu de glLoadName( nom_glLoadName); j arrive grace à ptrNames[0] à extraire nom_glPushName et nom_glLoadName. et tout marche trés bien sans problème.
|
|
dimanche 8 avril 2007 à 19:15:50 |
Re : Retrouvé les coordonnees 3d depuis la 2D

luhtor
|
Bas je peux pas trop t'aider, ca fait longtemps ke j'ai fais ca. Faut regarder la doc sur la pile du picking. J'ai une source qui utilisait le picking et abondament commenté. Peut etre que j'avais dis kkch la dessus.
|
|
Cette discussion est classée dans : plan, 3d, 2d, coordonnees, retrouvé
Répondre à ce message
Sujets en rapport avec ce message
Coord 2D to 3D [ par bat67000 ]
Comment optenir d'un point 2D sur l'app les coordonnees du point 3D associé avec la matrice de projection ?(je pige pas bien comment fonctionne la mat
de la 3d a la 2d [ par azkab ]
bonjour tt le monde,dans mon projet j ai un nombre de primitives (rectangles, cercles, polygones, lignes..) que j ai modelisé en 2d. je stock leur con
Collision 3D [ par DJPierreB ]
Actuellement, j'ai fait un programme qui dessine les murs et le sol d'une pièce.Je sais me déplacer dans la pièce. Je voudrais donc y ajouter des test
Comment fonctionne un moteur 2D ? [ par psykocrash ]
Bonjour,J'ai pour projet de développer un rpg à la Final Fantasy (en 2D, 4 héros, un inventaire pour les techniques et les armes, des combats tour à t
Image 2D sur fond 3D [ par CyberP ]
J'ai une question peut être stupide mais comment faire pour dessiner une image par dessus un rendu OpenGL ? Je pensais utiliser les trucs avec bitblt
plan de coupe 3D sur objet [ par jcloupgarou ]
Bonjour,je réalise un modeleur pour un projet info et je dois ajouter un outil permettant de faire des plans de coupe 3d des objets modélisés, donnant
tableau 2D/3D du structure. [ par goldziko9 ]
Bonjour. Mon problem est avec les tableau de structure, du genre :struct info{ char nom[20]; char prenom[20]; int age };struct info fete[20][20][20
Calcul du squelette d'une forme 2D ou 3D [ par FiReTiTi ]
Bonjour, je souhaiterai savoir si quelqu'un saurait où trouver du code qui calcule le squelette d'une forme 2D ou 3D. De préférence, des méthodes autr
Filtre gaussien 3D [ par Titeuf007 ]
Bonjour, J'aimerai appliquer un filtre gaussien 3D à un volume de données. En 2D, pas de problème, je promène mon mask sur chaque pixel de l'image et
trouver un point du mode 3D en 2D [ par thespartan ]
Bonjour. Dans mon jeu, je me balade dans un univers 3D et j'ai besoin de faire des explosions. Je me suis dit qu'il faudrait afficher les images en mo
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|