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 :

récupération des coordonnés d'un objet 3d


Sujet :

OpenGL

  1. #1
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Par défaut récupération des coordonnés d'un objet 3d
    bonjour,
    J'ai réussi à plaqué un cylindre sur un endroit précis (plaqué c-à-d projeter le cylindre sur limage)
    l'essentiel que le cylindre est 3d
    mais maintenant je voudrais connaitre la position de cette cylindre (x,y,z) de le cylindre ainsi que les angle d'orientation de cette cylindre.
    les coordonnées x,y sont facile à trouvé mais le problème dans les angles d'orientation je n'arrive pas à trouvé une idée pour les calculer
    pourriez vous me aider pour faire ça ou m'expliquer un peu la solution de ce problème ?

  2. #2
    Membre éprouvé Avatar de Robxley
    Homme Profil pro
    Docteur ingénieur traitement d'image
    Inscrit en
    Mai 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Docteur ingénieur traitement d'image

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Par défaut
    Comme çà avec le peu d'information sur ton problème c'est un peu compliqué de donner une réponse constructive.

    Tout ce que je peux dire c'est que il n'y a pas de possibilité sous opengl pour récupérer la position exacte d'un objet.

    Opengl n'a pas de "notion" d'objet, il travail avec des ensembles de vertex qui pour nous représente des objets.

    Le seul moyen que je vois pour récupérer la position et orientation c'est d'étudier la matrice de transformation que tu appliques à l'ensemble des vertex représentant ton objet, matrice de projection et de modelview.

    Mais bon, pour plus de précision dans la réponse, ils nous faudraient plus de précision dans ta question.

  3. #3
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Par défaut
    bon,
    j'ai dessiné mon cylindre

    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
    void drawCylinder(double r,double height)
    {
        double x=0,y=0;
        double pre=height/20;
        glPointSize(1);
        glBegin(GL_POINTS);
        for(double z=0;z<=height;z+=pre)
        {
            for(double t=0;t<=PI;t+=PI/20)
            {
                x=r*cos(t);
                y=r*sin(t);
                glVertex3d(x,z-height/2,y);
            }
        }
        glEnd();
        glLoadIdentity();
    }
    et pour le voir
    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
    37
    38
    39
    40
    41
    GLvoid OnDisplay(void)
    {
    	
    	
    	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    	
    	glEnable(GL_TEXTURE_2D);
    
    	// Set Projection Matrix
    	glMatrixMode (GL_PROJECTION);
    	glLoadIdentity();
    	//gluOrtho2D(15, VIEWPORT_WIDTH, VIEWPORT_HEIGHT, /*0*/15);
    glOrtho (0,VIEWPORT_WIDTH,0,VIEWPORT_HEIGHT,-500,500);
    
    	// Switch to Model View Matrix
    	glMatrixMode(GL_MODELVIEW);
    	glLoadIdentity();
    		
    	// Draw a textured quad
    		
    glBegin(GL_QUADS);
        glTexCoord2f(1.0f, 1.0f); glVertex3d(0,0,-499);
        glTexCoord2f(1.0f, 0.0f);glVertex3d(0,VIEWPORT_HEIGHT,-499);
        glTexCoord2f(0.0f, 0.0f);glVertex3d(VIEWPORT_WIDTH,VIEWPORT_HEIGHT,-499);
        glTexCoord2f(0.0f, 1.0f);glVertex3d(VIEWPORT_WIDTH,0,-499);
        //glVertex3d(0,0,-499);
        glEnd();
    	
    glFlush();
    
    
    
    cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 );
             storage = cvCreateMemStorage( 0 );
             Rect=*detect_and_draw(cvLoadImage("lena.jpg"));
    glTranslatef((2*(Rect.x)+Rect.width)/2,VIEWPORT_HEIGHT-(2*(Rect.y)+Rect.height)/2,0);
        drawCylinder(Rect.width/2,Rect.height);
    	
    	glutSwapBuffers();
    	
    	}

Discussions similaires

  1. Récupération des coordonnés d'un objet 3D
    Par info_sara dans le forum OpenCV
    Réponses: 4
    Dernier message: 09/06/2010, 11h27
  2. Récupération des coordonnées de la souris
    Par kabil.cpp dans le forum MFC
    Réponses: 11
    Dernier message: 23/05/2008, 06h43
  3. Réponses: 0
    Dernier message: 13/11/2007, 11h39
  4. Réponses: 2
    Dernier message: 15/06/2007, 10h08
  5. Réponses: 8
    Dernier message: 04/06/2007, 11h51

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