Calcul du vecteur pour une sphère.

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
nelbok
Membre Naturel
Messages: 10
Enregistré le: 24 Juil 2010, 06:57

Calcul du vecteur pour une sphère.

par nelbok » 24 Juil 2010, 07:03

Bonjour,

Je suis en train d'élaborer un simulateur de vol libre et gratuit, et je suis arrivé au point où ma connaissance en math me pose problème.
Pour faire simple, je dois calculer la prochaine position d'une sphère.
La position de cette sphère est en faite son centre.

Une représentation : http://neogamedev.chable.net/images/visualisation-avion.jpg

Ce que je connais :
- le centre {x, y, z}
- les angles de rotation {x, y, z}
- la vitesse

Sur le dessin :
- l'angle de rotation x est autour de l'axe des x ( roulis )
- l'angle de rotation y est autour de l'axe des y ( tangage )
- l'angle de rotation z est autour de l'axe des z ( lacet )

Ce que je recherche sa future position {x', y', z'}
Si on suppose la vitesse = 1, alors la future position est un point sur la sphere.

Je peux donc supposer que les équations sont quelque chose comme cela:
x' = R cos(Ay + Az) + x
y' = R cos(Ax + Az) + y
z' = R cos(Ax + Ay) + z

J'aimerais donc trouver les équations permettant de trouver la future position.

PS : Je ne sais pas si c'est le bon endroit pour poster, les autres forums étant pour les études, et que je ne sais pas quel niveau d'étude est mon problème :)



vincentroumezy
Membre Irrationnel
Messages: 1363
Enregistré le: 19 Juil 2010, 11:00

par vincentroumezy » 24 Juil 2010, 07:49

A quoi correspondent x', y', z'?
Qu'est ce qui transforme x en x'?

nelbok
Membre Naturel
Messages: 10
Enregistré le: 24 Juil 2010, 06:57

par nelbok » 24 Juil 2010, 08:00

Bonjour

La position {x', y', z'} est la prochaine position du centre de la sphère.
On a une vitesse V qui donne la vitesse de déplacement de la sphère dans l'espace.

Je pense que ces formules sont fausses, et donc j'aimerais comprendre comment trouver les bonnes formules.
x' = V * R cos(Ay + Az) + x
y' = V * R cos(Ax + Az) + y
z' = V * R cos(Ax + Ay) + z

Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 11:07

par Doraki » 24 Juil 2010, 08:30

Elle se déplace dans quelle direction, la sphère ?

nelbok
Membre Naturel
Messages: 10
Enregistré le: 24 Juil 2010, 06:57

par nelbok » 24 Juil 2010, 08:49

Donc, si les angles de rotation {x, y, z} sont à 0, alors la sphère se déplace le long de l'axe de X.
Donc un vecteur de 1x, 0y, 0z.

vincentroumezy
Membre Irrationnel
Messages: 1363
Enregistré le: 19 Juil 2010, 11:00

par vincentroumezy » 24 Juil 2010, 09:02

Il faut connaitre la rotation, la vitesse avant, et après.
Je propose:

x'=vt+v't

nelbok
Membre Naturel
Messages: 10
Enregistré le: 24 Juil 2010, 06:57

par nelbok » 24 Juil 2010, 09:48

La position, les angles de rotation ainsi que la vitesse avant le déplacement sont connus.
Et on peut connaitre les angles de rotation et vitesse après aussi.

Par contre, je ne vois pas ce que tu veux dire par vt et v't ?

vincentroumezy
Membre Irrationnel
Messages: 1363
Enregistré le: 19 Juil 2010, 11:00

par vincentroumezy » 24 Juil 2010, 10:03

v est la vitesse avant la rotation.
v'est la vitesse après larotation.
t1 est le temps de déplacement à la vitesse v.
t2 est le temps de déplacement à la vitesse v'.

vincentroumezy
Membre Irrationnel
Messages: 1363
Enregistré le: 19 Juil 2010, 11:00

par vincentroumezy » 24 Juil 2010, 10:05

d1=vt1 est la distance parcourue avant la rotation.
d2=v't2 est la distance parcourue après la rotation.

Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 11:07

par Doraki » 24 Juil 2010, 14:05

C'est quoi les angles de rotation Ax, Ay, Az ?
Ils sont sur la figure ?

nelbok
Membre Naturel
Messages: 10
Enregistré le: 24 Juil 2010, 06:57

par nelbok » 24 Juil 2010, 17:11

Pour répondre à ta question :
Sur le dessin :
- l'angle de rotation x est autour de l'axe des x ( roulis )
- l'angle de rotation y est autour de l'axe des y ( tangage )
- l'angle de rotation z est autour de l'axe des z ( lacet )

Désolé pour ne pas être assez précis dès le premier message.
J'espère que ca suffira ?

Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 11:07

par Doraki » 24 Juil 2010, 17:36

Mais ces axes, ils bougent avec l'avion, oui ?

Faire un lacet de 90°, puis un tangage de 90°, c'est pas du tout la même chose que faire un tangage de 90°, puis un lacet de 90°.

nelbok
Membre Naturel
Messages: 10
Enregistré le: 24 Juil 2010, 06:57

par nelbok » 24 Juil 2010, 17:48

Je suis d'accord, dans mon script, la position et les angles sont mise à jour tout les 20ms.
(Pas encore pour la position mais pour les angles oui)

On peut dont dire, si le joueur veut faire un lacet de 90°, puis un tangage de 90°
Dans le programme, il lancera le script plusieurs lors du lacet puis pareil pour le tangage.
Et bien sûr, sa position changera aussi en fonction de nouveaux angles calculer lors du script.

Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 11:07

par Doraki » 24 Juil 2010, 17:56

Mais à la fin des deux rotations, ton programme il retient quoi au final ?
que dans les deux cas, x = y = z = 0m ; Ax = 0° ; Ay = Az = 90° ?

nelbok
Membre Naturel
Messages: 10
Enregistré le: 24 Juil 2010, 06:57

par nelbok » 24 Juil 2010, 18:07

Pour les angles oui !
Mais pour la position, elle sera différente.
Imaginons qu'il avance de une unité tout les 90° de fait

Rotation sur l'angle Y et on avance :
Position : 0x, 0y, 1z
Rotation sur l'angle Z et on avance :
Position : 0x, 0y, 2z

Rotation sur l'angle Z et on avance :
Position : 0x, 1y, 0z
Rotation sur l'angle Y et on avance :
Position : 0x, 2y, 0z

Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 11:07

par Doraki » 24 Juil 2010, 18:54

Non, là tu viens de décrire : lacet 90°, avancer de 1m, roulis 90°, avancer de 1m
Et tangage 90°, avancer de 1m, roulis 90°, avancer de 1m.

Enfin moi, si je tangue en avançant, j'avance pas en ligne droite, donc j'avance pas dans la même direction avant le tangage et après le tangage. Alors que toi tu le fais avancer 2 fois selon l'axe z.

Pour calculer la position dans un repère fixe, les axes x y z ne doivent pas bouger
En revanche, lorsque l'avion tourne, ses axes de lacet/roulis/tangage changent avec lui.

Si au début, l'avion est dirigé tel que
l'axe de roulis = l'axe des x,
l'axe de tangage = l'axe des y, et
l'axe de lacet = l'axe des z
(i.e. il est horizontal, si il avance il avance sur l'axe de roulis = l'axe des x, et il est à l'endroit)

Alors après 90° de lacet,
son axe de roulis est sur l'axe des y,
son axe de tangage est sur l'axe des x,
son axe de lacet est sur l'axe des z.
Donc il avance sur son axe de roulis = l'axe des y.

Ensuite, après 90° de tangage,
son axe de roulis est sur l'axe des z,
son axe de tangage est sur l'axe des x,
son axe de lacet est sur l'axe des y.
Donc il avance sur son axe de roulis = l'axe des z.
Donc il doit se trouver à la fin avec un truc comme (x=0m, y=1m, z=1m)

nelbok
Membre Naturel
Messages: 10
Enregistré le: 24 Juil 2010, 06:57

par nelbok » 25 Juil 2010, 08:48

Je suis d'accord, je me suis trompé, et d'accord aussi pour les axes.
Cependant, j'ai un doute pour le résultat.

Après avoir réfléchir de nouveau.
Alors après 90° de lacet,
son axe de roulis est sur l'axe des y,
son axe de tangage est sur l'axe des x,
son axe de lacet est sur l'axe des z.
Donc il avance sur son axe de roulis = l'axe des y.

Cependant il a déjà avancé d'une vitesse constante et a donc décrit un arc de cercle de 90°, donc pour ma part, on a un vecteur de {1x, 1y, 0z}

Ensuite, après 90° de tangage,
son axe de roulis est sur l'axe des z,
son axe de tangage est sur l'axe des x,
son axe de lacet est sur l'axe des y.
Donc il avance sur son axe de roulis = l'axe des z.

Pour cet arc de cercle, on a un vecteur de {0x, 1y, 1z}

Donc au final, la nouvelle position est de {1x, 2y, 1z}

Pour l'autre cas :
Arc de 90° de tangage : vecteur {1x, 0y, 1z}
Arc de 90° de lacet : vecteur {0x, 1y, 1z}
Final : nouvelle position {1x, 1y, 2z}

Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 11:07

par Doraki » 25 Juil 2010, 09:53

Décide-toi, avant tu disais que l'avion avançait entre chaque rotation, là tu dis qu'il fait des arcs de cercles...

Bon alors est-ce que t'as une meilleure idée de ce que doit calculer ton programme ?

nelbok
Membre Naturel
Messages: 10
Enregistré le: 24 Juil 2010, 06:57

par nelbok » 26 Juil 2010, 17:13

Désolé, je me suis mal exprimé, depuis le départ, pour moi, l'avion se déplace tout le temps, donc décrit plus ou moins des arcs de cercle.

Ce que dois calculer mon programme, c'est le point sur la sphère qui est placé avec les 3 angles de rotations.

Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 11:07

par Doraki » 26 Juil 2010, 17:40

nelbok a écrit:le point sur la sphère qui est placé avec les 3 angles de rotations.

Ca ça veut rien dire.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 25 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite