Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Math] : Vitesse X d'un objet selon l'angle  (Lu 3233 fois)

0 Membres et 1 Invité sur ce sujet

Guit0x

  • Newbie
  • *
  • Messages: 35
    • Voir le profil
[Math] : Vitesse X d'un objet selon l'angle
« le: Août 27, 2017, 03:07:27 pm »
Bonjour à tous !

Actuellement je me retrouve face à un problème concernant la vitesse x d'un objet selon l'angle vers lequel celui-ci est orienté. Si l'objet est lancé parallèlement à l'axe x tout va bien. En revanche si celui-ci est lancé selon un angle différent alors l'objet semble beaucoup plus rapide dans le mouvement (ce qui est logique en fait). Mon problème se situe donc ici, comment faire pour changer correctement la vitesse de x selon l'angle de tir ? Dois-je utiliser le coefficient directeur ? ou l'angle ?

Voici le résultat obtenu où l'on peut distinguer la différence de vitesse :



Et voici les opérations effectuées pour le mouvement :

// Calcul du coeff et de l'ordonnée à l'origine
m_coeff = (float) tan(m_angle * PI / 180);
m_ordOrigin = m_y - (m_coeff * m_x);

// Move
m_x += (m_angle * m_speed * dt) / 360.f;
m_y = (m_coeff * m_x) + m_ordOrigin; // y = mx + p

Donc l'objet suit correctement la trajectoire de la droite selon l'angle mais la vitesse de x ne diminue pas assez (elle oscille entre 14 et 16), même en appliquant une proportionnalité sur m_x.

Aurais-je oublié une donnée quelque part dans mon calcul ?
« Modifié: Août 27, 2017, 03:10:40 pm par Guit0x »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: [Math] : Vitesse X d'un objet selon l'angle
« Réponse #1 le: Août 27, 2017, 04:05:39 pm »
Les équations de projectile sont assez simples et très connues :
https://fr.wikipedia.org/wiki/Trajectoire_d%27un_projectile#.C3.89quations_horaires_et_cart.C3.A9siennes
(1er encadré)
Laurent Gomila - SFML developer

Guit0x

  • Newbie
  • *
  • Messages: 35
    • Voir le profil
Re: [Math] : Vitesse X d'un objet selon l'angle
« Réponse #2 le: Août 27, 2017, 04:49:27 pm »
Super merci ! Je vais voir ce que je peux faire avec ça, n'ayant pas manipulé ce type d'équations depuis quelques années je suis un peu perdu mais ça devrait revenir.

Je posterai la réponse une fois le problème résolu.

Guit0x

  • Newbie
  • *
  • Messages: 35
    • Voir le profil
Re: [Résolu] : Vitesse X d'un objet selon l'angle
« Réponse #3 le: Août 27, 2017, 06:35:55 pm »
Tout est ok !

Finalement, étant donné que je n'applique aucune force sur les projectiles (gravité 0) et que le projectile n'est pas censé suivre une parabole, l'équation y = mx + p reste inchangée.

En revanche la vitesse donnée pour x évolue selon l'angle de tir initial donc en tenant compte des équations horaires de base et en convertissant l'angle de rotation du projectile en radian, m_x devient :

 // Conversion de l'angle
 float radA = (m_angle) * ((2 * PI) / 360.f);

 // m_x
 m_x += cos(radA) * m_speed * dt;
 

Encore merci pour le coup de pouce.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: [Math] : Vitesse X d'un objet selon l'angle
« Réponse #4 le: Août 27, 2017, 07:21:21 pm »
Ok, si la trajectoire est droite alors effectivement c'est plus simple

x = cos(angle) * speed * dt
y = sin(angle) * speed * dt
Laurent Gomila - SFML developer

Guit0x

  • Newbie
  • *
  • Messages: 35
    • Voir le profil
Re: [Math] : Vitesse X d'un objet selon l'angle
« Réponse #5 le: Août 27, 2017, 09:06:57 pm »
 y = sin(angle) * speed * dt
 

Ah je n'avais même pas remarqué qu'il était possible d'éviter l'équation de droite classique ::), mais c'est vrai qu'en regardant de plus près l'équation horaire pour y je comprends mieux, ce qui m'évite le calcul du coeff. directeur et de l'ordonnée à l'origine. Merci bien.