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

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Points : 57
    Points
    57
    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
    Points : 9 818
    Points
    9 818
    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
    Je ne répondrai à aucune question technique en privé

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Points : 57
    Points
    57
    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
    Points : 9 818
    Points
    9 818
    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é).
    Je ne répondrai à aucune question technique en privé

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Points : 57
    Points
    57
    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
    Points : 9 818
    Points
    9 818
    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.
    Je ne répondrai à aucune question technique en privé

  7. #7
    Membre du Club
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Points : 57
    Points
    57
    Par défaut
    Merci, la je vais vraiment pouvoir continuer le code.

  8. #8
    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
    Points : 9 818
    Points
    9 818
    Par défaut
    Si tu veux ajouter du vent, pour faire simple, je pense qu'il faudrait reprendre la première équation mais ne pas utiliser g mais un autre vecteur (g + unptivecteur qui correspond au vecteur vitesse du vent).

    Par exemple, avec un vent horizontal à droite. T'aurais :

    x = 1/2 VENTH t² + v0x t + x0
    y = -1/2 g t² + v0y + y0

    Dans le cas général, ça serait :

    x = 1/2 VENTX t² + v0x + x0
    y = 1/2 (VENTY - g) t² + v0y + y0
    Je ne répondrai à aucune question technique en privé

  9. #9
    Membre du Club
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Points : 57
    Points
    57
    Par défaut
    Heu, par ex x = 1/2 VENTX t² + v0x + x0

    v0x c'est bien v0 * la position actuelle x ???

  10. #10
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Tu as fais de la physique récemment ?
    V0x c'est V0 suivant l'axe x...
    Ne t'embarques pas dans ce truc sans réviser au moins les cours de terminale S.
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  11. #11
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    On avait répondu à un sujet similaire sur ce forum: voir
    http://www.developpez.net/forums/showthread.php?t=89359

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