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

Langage C++ Discussion :

Interpolation plan en 2D en fonction du temps


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 56
    Par défaut Interpolation plan en 2D en fonction du temps
    Bonjour,

    Je suis en train de réaliser un programme en c++ avec un personnage qui se déplace sur un plan en 2D.

    Le personnage doit passer par des points à un instant t précis.

    Exemple : passe par (3,6) à t=0
    passe par (2, 10) à t = 12
    passe par (12, 39) à t = 40
    ...

    Le problème est que je voudrais faire en sorte que le personnage se déplace de manière "continue" (rafraichir sa position toutes les 1/2 sec par exemple). Il faudrait pour cela à partir des points connus faire une interpolation et obtenir la position à un instant t quelconque.

    Je ne sais pas comment faire. J'avais pensé aux splines cubiques, mais cela me pose un problème avec le temps, je ne sais pas comment le prendre en compte.


    Je sollicite votre aide pour des pistes sur lesquelles je pourrais partir.


    Vous remerciant par avance.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Par défaut
    Pourquoi pas une simple interpolation linéaire? Un truc tout bête genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    double InterpolationLineaire (double dxa, double dxb, double dya, double dyb, double dx)
    {
        double dRes;
     
        dRes = (dya - dyb) / (dxa - dxb) * dx + (dxa * dyb - dxb * dya) / (dxa - dxb);
        return dRes;
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 56
    Par défaut
    Merci pour la méthode.

    Par contre, je ne vois pas comment prendre en compte le temps. Je peux passer à cette fonction les coordonnées du premier point mais pas son temps, idem pour le deuxième point.
    Comment faire alors pour récupérer un couple de points en fonction d'un temps ?

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Par défaut
    En fait il faut que tu calcules le premier point puis le second. En reprenant ton exemple :

    passe par (3,6) à t=0
    passe par (2, 10) à t = 12

    Pour t = 1
    • double x = InterpolationLineaire (0, 12, 2, 2, 1) // t=0, x1 = 3, t=12, x2=2, t=1 (temps pour lequel tu cherches les coordonnees)
    • double y = InterpolationLineaire (0, 12, 6, 10, 1) // t=0, y1 = 6, t=12, y2=10, t=1 (temps pour lequel tu cherches les coordonnees)


    Etc... Après il y a moyen d'adapter la fonction pour qu'elle te retourne par exemple un couple de coordonnées (x;y) en utilisant une structure.

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

Discussions similaires

  1. [Débutant] Interpoler en 2D en fonction du temps
    Par Ludo1919 dans le forum MATLAB
    Réponses: 11
    Dernier message: 29/07/2010, 09h14
  2. Déclencher un événement en fonction du temps
    Par etud_ini dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 11/10/2007, 12h10
  3. vitesse en fonction du temps
    Par moustiqu3 dans le forum MATLAB
    Réponses: 1
    Dernier message: 18/05/2007, 09h01
  4. comment faire cette fonction de temps
    Par yassin123441 dans le forum C++
    Réponses: 4
    Dernier message: 14/03/2007, 23h19
  5. [Mail] la fonction mail-temps limite d'un script
    Par fk04 dans le forum Langage
    Réponses: 5
    Dernier message: 01/09/2006, 13h45

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