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 :

Deplacement de la caméra à la souris


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Par défaut Deplacement de la caméra à la souris
    Bonjour,
    Voilà j'aimerais pouvoir déplacer la caméra dans le plan 'seulement x et y, en se servant de la souris: C'est à dire quand on clique on peut déplacer horizontalement et verticalement.
    J'ai essayé ce code mais ça ne marche pas Quelqu'un pourrait aurait une idée?

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    EVT_LEFT_DOWN(Viewer::OnLeftMouse)
    EVT_LEFT_UP(Viewer::OnLeftMouseUp)
    EVT_MOTION(Viewer::OnMouseMove)	
     
    double depX, depY;
    long Xcoord, Ycoord, X, Y;
    int MouseButton = 0;
    depX = depY = 0;
     
    void Viewer::OnLeftMouse(wxMouseEvent& event)
    {
        MouseButton = 1;
        event.GetPosition(&Xcoord, &Ycoord);
    }
    void Viewer::OnLeftMouseUp(wxMouseEvent& event)
    {        
        MouseButton = 0;
    }
     
    void Viewer::OnMouseMove(wxMouseEvent& event)
    {
        if (event.Dragging() == true)
        {
            event.GetPosition(&X, &Y);
            if(MouseButton ==1)
            {
    	depX = depX + (GLfloat)(X - Xcoord);
    	depY = depY + (GLfloat)(Y - Ycoord);
    	Xcoord = X;
    	Ycoord = Y;
    	glTranslatef(X, Y, 0);
            }
            Draw();
        }  
    }

  2. #2
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut
    Ca serais pas plutôt glTranslatef(depX,depY, 0); ?

    Si non il y a une méthode me semble t'il plus propre pour faire ca... c'est de placer ta sourie au centre de l'écran a chaque foi et de regarde de combien elle bouge puis la replacer au centre...
    Comme ca tu ne risqueras pas d'arriver a un moment ou tu ne puisse plus bouger dans une direction (la limite de l'écran)...
    De plus tu économisera comme ça deux variable (les variable qui retienne la l'ancienne position de la souris)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Par défaut
    Ca serais pas plutôt glTranslatef(depX,depY, 0); ?
    => ouai jcrois mais ça marche pas plus...

    Sinon comment faire pour placer la souris au centre de l'écran et la replacer? Je débute en openGL je connais pas grand chose

  4. #4
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut
    Citation Envoyé par Ninouw
    => ouai jcrois mais ça marche pas plus...
    essaye de mettre des printf un peu partout dans ta fonction OnMouseMove voir comment sa s'exécute...


    Citation Envoyé par Ninouw
    Sinon comment faire pour placer la souris au centre de l'écran et la replacer?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #include <GL/glut.h> //il faut la lib glut
    ...
    glutWarpPointer(x,y);
    ...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Par défaut
    J'ai mis un printf dans OnLeftMouseUp pour récupérer la valeur de depX et depY, donc le dépacement et c'est du n'importe quoi
    Les valeurs sont visiblement complétement fausses : une fois négatives, une fois positives (alors que c'est le même sens qu'avant), et quand je bouge la souris seuelement en hauteur, le déplacement de depX arrive encore à être plus grand que le depY... bref jcrois qu'ya tout à refaire!

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Par défaut
    J'ai trouvé d'où vient le problème, c'est que le glTranslate n'était pas au bon endroit, dont ça ne s'éxecutait pas. Et pour les points les coordonnées sont bizares mais pourtant sa marche... je cherche plus à comprendre
    En tout cas merci pour tes conseils Ekinoks c'était sympa à toi!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. deplacer la caméra en movement de souris
    Par lamiabr dans le forum OpenGL
    Réponses: 4
    Dernier message: 07/11/2012, 18h29
  2. deplacé rectangle drawRect avec la souris
    Par hugobob dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 16/03/2007, 13h29
  3. [C#] Deplacer un formulaire avec la souris
    Par cMoMo dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/12/2006, 13h30
  4. cumul d'evenement / deplacement de div avec la souris
    Par highman dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/04/2006, 11h59
  5. deplacer la souris
    Par kobton dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/08/2004, 10h02

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