cs_windsurfer
Messages postés20Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention26 juin 2008
-
20 juin 2008 à 19:10
cs_windsurfer
Messages postés20Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention26 juin 2008
-
26 juin 2008 à 12:36
salut
Je travaille sous opengl avec Delphi.
Dans ma fenêtre opengl, il y a un point A(x;y;z) dans le repère 3D. Mon but est de pouvoir le déplacer à la souris dans un plan parallèle à l'écran.
1. Je clique à l'écran avec la souris et j'ai besoin de savoir si le point est bien en dessous.
2. Je déplace la souris et le point doit suivre le curseur dans un plan parallèle au plan de l'écran.
L'idéal serait de pouvoir récupérer les coordonnées du point de l'écran sur lequel j'ai cliqué avec des coordonnées données dans le même repère que le point A pour définir un vecteur directeur du déplacement dans le plan de l'écran.
Il me semble qu'il est question de feedback mais ma seule documentation à ce sujet et en Anglais technique et dans un langage (du C certainement) que je ne maitrise pas du tout.
cs_windsurfer
Messages postés20Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention26 juin 20081 26 juin 2008 à 12:36
Bon, je me suis replongé dans les matrices de transformation et j'ai fini par trouver... Si ça interesse quelqu'un par la suite, je sais comment donner les coordonnées 3D du curseur de la souris par rapport au repère 3d et inversement donner les coordonnées 2d d'un point du repere 3D sur ma feuille.
Du coup on a pas besoin d'utiliser glfwGetMousePos. les onmousemove on mouseclick de la feuille suffisent.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 22 juin 2008 à 05:33
procedure glfwGetMousePos(out X, Y: integer);
"void" veux dire qu'on attend aucun type de retour.
void MaFonction()
{
}
se traduit en delphi par
procedure MaFonction;
begin
end;
au contraitre de ceci :
int MaFonction()
{
}
qui se traduit par :
function MaFonction: integer;
begin
end;
cela viens du fait qu'en C/C++ et autres langage C Like, on declare les types avant les identifiants contrairement a Delphi ou l'on declare l'identifiant puis le type (logique dans un langage de programmation proche du langage humain).
<hr size="2" width="100%" />
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_windsurfer
Messages postés20Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention26 juin 20081 22 juin 2008 à 21:43
Ok, déjà ça m'aide bien, je parviens à récupérer 2 coordonnées x et y de mon curseur.
Cependant comment passer du repère de la fenêtre active (repère dont on me parle partout dans mes docs mais que je n'ai vu défini nul part clairement) au repère de l'espace dans lequel je connais A ? Quel est le lien entre les deux ?
DeltaFX
Messages postés449Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention 8 avril 20092 26 juin 2008 à 11:08
En fait tu as besoin des coordonnées écran de ton truc 3D ( et là... demande aux pros de l'openGL). donc quand tu cliques sur l'écran il faut alors vérifier que la position de ta souris se situe à moins de "tant" de la position du centre du mobile projeté sur l'écran (cercle de détection).