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 :

Mouvement d'une lampe ou d'un objet


Sujet :

OpenGL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 41
    Points
    41
    Par défaut Mouvement d'une lampe ou d'un objet
    Bonsoir,

    J'ai un probleme, je souhaite avoir une lampe qui suive un trace defini comme une elipse.
    De meme pour un objet (une sphere) pour simuler une planete.

    comment faire ca ? par translation ? mais comment calculer la position en fonction du temps ? merci

  2. #2
    Membre éclairé
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Points : 875
    Points
    875
    Par défaut
    Salut,

    Si c'est juste le faire suivre un tracé comme un cercle, il suffit d'utiliser sinus et cosinus:

    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
    float angle = 0;
    float distance = 3;
    float x = 0, y = 0, z = 0;
     
    boucle() //
    {
       x = sin(angle)*distance;
       z = cos(angle)*distance;
     
       angle += 0.1 * frametime; // frame time est le temps par frame
     
       glPushMatrix();
       glTranslatef(x,y,z);
       affichage_objet(); // la sphere par éxample
       glPopMatrix();
    }
    Ou alors bien plus facile, on utilise glRotatef(); comme ceci

    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
    float angle = 0;
    float distance = 3;
    float x = 0, y = 0, z = 0;
     
    boucle() //
    {
       angle += 0.1 * frametime; // frame time est le temps par frame
     
       glPushMatrix();
       glTranslatef(x,y,z);
       glRotatef(angle,0,1,0);
       glTranslatef(0,0,distance);
       affichage_objet(); // la sphere par éxample
       glPopMatrix();
    }
    edit: oops désolé je n'ai pas fait attention a éllipse

  3. #3
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Salut,

    Citation Envoyé par black.out
    mais comment calculer la position en fonction du temps ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    x=a*cos(t)
    y=b*sin(t)
    avec a demi-grand axe de l'ellipse, b demi-petit axe, t compris entre 0 et 2*Pi (ou le temps modulo 2*Pi)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Nickel, merci pour votre aide

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

Discussions similaires

  1. [vector] Partager une même variable entre deux objets.
    Par Ekinoks dans le forum SL & STL
    Réponses: 18
    Dernier message: 25/08/2005, 20h40
  2. Expliciter une exception levée par un objet OLE
    Par Bleuarff dans le forum Windows
    Réponses: 3
    Dernier message: 12/05/2005, 16h10
  3. Réponses: 17
    Dernier message: 04/04/2005, 17h50
  4. [VB.NET] Associer une action a bcp d'objets ....
    Par Michocs17141 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 06/12/2004, 12h25
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

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