IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Souris avec Opengl


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut Souris avec Opengl
    Bonjour,

    Je suis novice en programation et j'ai un problème que je n'arrive pas à résoudre avec opengl si quelqu'un pouvait m'aider ça serai sympa ^^

    Bon, j'ai bien compris les tuto sur le picking opengl et il n'y a pas de problème de ce coté la, en fait mon objectif est de :

    partie 1 :
    sélectionner un objet (je sais comment faire)

    partie 2 :
    pouvoir déplacer cet objet avec la souris (aie)

    J'ai réussi à récupérer la position de la souris en coordonnées 2D (c'est a dire dans le repère 600x800) il me faut maintenant transformer ces coordonnées en vecteur opengl pour pouvoir faire bouger un cube avec la souris par example...

    j'ai trouvé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    loat GetOGLPos(int x,int y,float*Vecteur)
    {
     
    	GLint viewport[4];
    	GLdouble modelview[16];
    	GLdouble projection[16];
    	GLfloat winX, winY, winZ;
    	GLdouble posX, posY, posZ;
     
    	glGetDoublev( GL_MODELVIEW_MATRIX, modelview );
    	glGetDoublev( GL_PROJECTION_MATRIX, projection );
    	glGetIntegerv( GL_VIEWPORT, viewport );
     
    	winX = (float)x;
    	winY = (float)viewport[3] -(float)y;
    	glReadPixels( x, int(winY), 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ );
     
    	gluUnProject( winX, winY, winZ, modelview, projection, viewport, &posX, &posY, &posZ);
     
    	return Vecteur[0]=posX,Vecteur[1]=posY,Vecteur[2]=posZ;
    }
    Mon problème est que ce code donne des résultat érronés si j'utilise gluPerspective .... donc ma question est comment définir la position de la souris dans l'espace 3D d'opengl même si je fait une rotation, une translation, ou que j'utilise gluPerspective.

    MProg(plz help )

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    la couche GLUI te donnerai les translations nécessaires.
    Je m'explique : quand tu utilises Glui pour faire bouger ta scène, il y a des translations disponible dans le plan d'affichage. Tu n'as qu'à les utiliser.

    Sinon à toi le calcul des angles formé par le point de vue et toutes les rotations qui s'y pretent..

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2003
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par ToTo13
    Bonjour,

    la couche GLUI te donnerai les translations nécessaires.
    Je m'explique : quand tu utilises Glui pour faire bouger ta scène, il y a des translations disponible dans le plan d'affichage. Tu n'as qu'à les utiliser.

    Sinon à toi le calcul des angles formé par le point de vue et toutes les rotations qui s'y pretent..
    J'ai le même problème avec mes objets sélectionné, j'arrive à sélectionner un objet mais il y a toujours un décalement avec la souris et j'ai remarquer que c'est du au fait que je suis en perspective. Donc les angles viennent jouer là dedant.

    Je me demandais comment réussir à corrigé ce problème?

    Comment utiliser les translations disponible dans le plan d'affichage?

    DestinyWar

Discussions similaires

  1. Détection des coordonnées de la souris avec OpenGL
    Par choko83 dans le forum OpenGL
    Réponses: 5
    Dernier message: 17/03/2009, 10h03
  2. Gérer un clic souris maintenu avec OpenGL
    Par PetitProgJava dans le forum OpenGL
    Réponses: 1
    Dernier message: 09/01/2009, 13h39
  3. Réponses: 8
    Dernier message: 04/06/2007, 11h51
  4. Réponses: 10
    Dernier message: 21/01/2007, 01h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo