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

Algorithmes et structures de données Discussion :

Trajectoire d'un projectile (2D)


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Par défaut [RESOLU] Trajectoire d'un projectile (2D)
    Salut,

    Je développe un petit jeu, et ... comme d'hab j'ai un prob de maths, les cosinus et moi on est pas "amis"... Pouvez-vous m'aider svp ?

    * J'ai un objet:
    - Position actuelle {x,y} {50,300} par ex
    - Position cible {x2,y2} {600, 400} par ex
    - Une vitesse {speed}, 10pixels/sec

    Pour obtenir {x2,y2} j'utilise un vecteur --> {x2=x+vect_x; y2=y+vect_y}

    Comment svp (quelle formule) utiliser pour déplacer mon objet jusqu'en {x2,y2} à la vitesse {speed} ???


    * Mon but serait à terme d'ajouter la gravité, ainsi que les rebonds, est ce que j'utilise la bonne méthode la pour ma trajectoire ?


    Merci d'avance ...

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Quand tu dis, trajectoire d'un projectile.

    Tu veux que ton projectile aille en ligne droite ? Ou qu'il forme une cloche (dc à utiliser la RFD).

    J'ai vu que tu veux ajouter de la gravité.

    Dans ce cas, la position s'écrit sous la forme :

    M(x,y) = 1/2 g t ² + V0 t + M0(x,y)

    Avec : g dirigé vers le bas et vaut à peu près 10 (ou tu peux changer)
    v0 : le vecteur vitesse initiale (ça dépend donc de ton angle d'inclinaison, mais v0 sera égale à (v cos a, v sin a)) ou v est la valeur de ta vitesse initiale et a l'angle d'inclinaison
    M0 la position initiale

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Par défaut
    RFD ??

    En fait, mon but:

    - J'ai un objet qui a une position actuelle {x,y}
    - Vitesse: X pixels/boucle

    1) Je lui donne un angle d'orientation

    2) Je devrais pouvoir ajouter des vecteurs de "gravitation" et de "vent" donc qui agissent sur l'horizontal et la verticale.

    3) Je lance une méthode "move()", qui déplace petit à petit (en fonction de la vitesse) l'objet vers la nouvelle position, sachant qu'il y'aura la gravité aussi.

    Merci pr ta rep.


    PS: ce que je cherche surtt, c'est ... de combien incrémenter {x} et {y} à chaque appel de ma fonction move() ... jusque l'objet atteint la cible.

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    RFD = relation fondamentale de la dynamique


    Il ne faut pas incrémenter x et y, il faut incrémenter le temps t et évaluer la position à chaque nouvel étape (grâce à la formule que j'ai donné).

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Par défaut
    Ok, donc ... ca répond a plein de questions ça ...

    Merci bcp je vais continuer mon code :-p


    Mais stp, un prob encore :

    M(x,y) = 1/2 g t ² + V0 t + M0(x,y)

    Comment en sortir x et y ?

    En fait, je dois faire:
    x = ...
    y = ...

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Oui, tes positions initales sont x0 et y0, les vitesses initiale est vx0 et vy0 (calculable d'après la formule que j'ai donné)

    T'as un système

    x = v0x t + x0 (car g est dirigé vers le bas, donc nul selon la direction de x)
    y = -1/2 g t² + v0y + y0

    Et début, t=0 (donc x=x0 et y=y0)
    Puis t'incrémentes comme tu le sens.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/02/2006, 11h15
  2. [IA] Calcul de trajectoire, heurstique et A*
    Par Olivier_ dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 03/01/2006, 17h47
  3. analyse de trajectoire
    Par victorracine dans le forum Algorithmes et structures de données
    Réponses: 23
    Dernier message: 23/10/2005, 10h53
  4. Prédiction de trajectoire
    Par Xfennec dans le forum Développement
    Réponses: 3
    Dernier message: 27/07/2004, 16h08
  5. trajectoire anime en AS2
    Par savoyard dans le forum Flash
    Réponses: 20
    Dernier message: 07/11/2003, 13h08

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