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 :

Transformation et tracé d'une ligne [OpenGL 1.x]


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 16
    Par défaut Transformation et tracé d'une ligne
    Bonjour à tous,

    J'ai un petit problème avec OpenGL.
    J'ai deux plans superposés les uns aux autres en trois dimensions.
    Chaque plan a un repère qui lui est propre.
    J'aimerais tracer une ligne qui relie deux points, chaque point étant dans un repère différent. Chaque point doit donc être placé dans le repère qui lui est propre.

    Le problème c'est que si je fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    initReperePlan(1); // j'initialise le repère du plan 1
    glBegin(GL_LINES); 
    glVertex3i(5,10,0); 
    glVertex3i(5,10,5); 
    glEnd();
    ça ne fonctionne pas comme je le veux : mes deux points sont bien reliés mais le point n°2 est placé selon le repère du point n°1.
    Ce qu'il faudrait donc faire c'est quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    initReperePlan(1); // j'initialise le repère du plan 1
    glBegin(GL_LINES); 
    glVertex2i(5,10); // la coordonnée z est donc calculée par rapport au plan 1
    initReperePlan(2); 
    glVertex2i(5,10); // la coordonnée z est donc calculée par rapport au plan 2
    glEnd();
    pour pouvoir placer le point 2 selon le repère du plan 2.
    Mais il me semble que ce n'est pas possible de changer de repère dans un glBegin();
    Si quelqu'un sait comment changer de repère pendant qu'on trace une ligne... merci d'avance.

    Zikee

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 185
    Billets dans le blog
    157
    Par défaut
    Bonjour,

    Que fait la fonction initReperePlan ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 16
    Par défaut
    Bonjour,

    Cette fonction fait des transformations de base : translations, rotations pour initialiser le repère du plan passé en paramètre. Par exemple pour le initReperePlan(1) il n'y a pas de translation, une rotation de 45 degré selon z et de 20 degrés selon y. Pour initReperePlan(2) une translation de 5 selon z, rotation de 10 selon y.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 185
    Billets dans le blog
    157
    Par défaut
    En effet, ces commandes ne sont pas utilisables dans les blocs glBegin/glEnd. Je vous conseille de récupérer la matrice directement et de faire les transformations de vos points en multipliant avec la matrice ainsi, vous pourrez passer les points d'un plan à l'autre
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 16
    Par défaut
    Et comment est-ce que je peux faire cette opération ?

    Merci pour votre aide.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 185
    Billets dans le blog
    157
    Par défaut
    Si vous utilisez le C++, je vous conseille GLM, sinon, vous pouvez trouver les informations sur internet pour faire une multiplication entre un vecteur et une matrice
    C'est tout.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

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

Discussions similaires

  1. Tracé d'une ligne sur un QWidget
    Par hichemnho dans le forum Débuter
    Réponses: 2
    Dernier message: 20/01/2012, 16h40
  2. Réponses: 0
    Dernier message: 06/12/2007, 12h08
  3. tracé une ligne dans un picturebox
    Par kakrocq dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 21/05/2007, 14h30
  4. Réponses: 7
    Dernier message: 28/03/2006, 12h24
  5. Transformer une ligne en polygone
    Par bl4d3 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 02/09/2003, 10h35

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