Trajectoire sphérique

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
pinkmountain
Messages: 5
Enregistré le: 13 Juil 2009, 23:58

Trajectoire sphérique

par pinkmountain » 14 Juil 2009, 00:12

Bonsoir à tous :zen:


Je suis développeur en informatique et je m'intéresse depuis quelques temps au développement 3D en directx.

Je ne suis pas très fort en mathèmatiques (j'ai à peine le niveau d'un élève de seconde générale en math xD), enfin bref, tout ça pour dire que j'ai dû m'y mettre.

J'ai apprit à utiliser les matrices mais malheureusement je ne peux pas servir dans ce cas. Je m'explique:


Je dispose d'une sphère et j'aimerai faire tourner la caméra autour de cette sphère. La caméra sera positionnée à une distance (rayon) fixe par rapport au centre de la sphère. J'aimerai pouvoir tourner autour de cette sphère dans une direction (rotation? angle?) que j'aurai moi même défini, tout en gardant la même distance (définie à l'avance elle aussi) par rapport au centre de la sphère.


J'ai trouvé sur le net une méthode qui y ressemble un peu, mais sur un plan en 2D:

angle = PI * rotation / 180

x = cos(angle) * vitesse
y = sin(angle) * vitesse

positionX = positionX + x
positionY = positionY + y

cette méthode fonctionne parfaitement dans un repère 2D, je cherche comment l'appliquer dans un repère 3D.




Quelqu'un peut m'aider? où me donner des pistes de recherches, j'ai déjà beaucoup cherché sur le net mais sans résultats, merci d'avance. :happy2:

PS: j'espère être assez explicite ^^'



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 14 Juil 2009, 00:17

salut pinkmoutain,

j'ai pas trop saisit lanalogie avec le plan. Les coordonnées (x,y) que tu donnes decrivent la position d'un point sur un cercle.

On pourrait faire la même chose pour une sphère, mais je ne pense pas que c'est ce que tu cherches.

Comme tu parles de caméra, j'ai plutot l'impression que tu veux observer un paysage tout en regardant en direction du centre de la sphère. Si c'est le cas, les matrices de transformations s'y prète bien.
matrice de translation, de rotation et dhomothétie.
Evidemment, il reste le lieu de lobservation cad un point sur la surface de la sphère a définir, mais bon, en coordo cart ou sphé ca se fait.
la vie est une fête :)

pinkmountain
Messages: 5
Enregistré le: 13 Juil 2009, 23:58

par pinkmountain » 14 Juil 2009, 00:22

Merci pour ta réponse rapide ^^

Je ne peux malheureusement pas utiliser les matrices, l'explication est trop complexe pour moi mais je sais que je ne peux pas.

"J'ai plutot l'impression que tu veux observer un paysage tout en regardant en direction du centre de la sphère" c'est exactement ça ^^

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 14 Juil 2009, 00:32

les matrices simplifient (vraiment) grandement la vie. Si tu dois a tout prix comprendre comment ca fonctionne, je pense que yaura pas mal de monde au taquet pour texpliquer, donc de ce point de vu la faudra juste un peu suer...
Si tu n'es même pas obligé de comprendre comment ca marche mais que tu dois juste appliquer, alors la c'est tout bénéf!

Hélas, je ne connais pas d'autres méthodes (faut dire, jetais assez convaincu :p ), mais il existe pe d'autres moyens si tu trouves les matrices trop répulsives
la vie est une fête :)

pinkmountain
Messages: 5
Enregistré le: 13 Juil 2009, 23:58

par pinkmountain » 14 Juil 2009, 00:40

Tu n'as pas comprit ^^'

Je sais me servir des matrices, j'ai d'ailleurs commencé par ça. J'utilise ma souris pour tourner autour de ma sphère: en la déplacent à gauche ou à droite (sur un axe horizontal donc) j'applique une matrice de rotation par rapport à l'axe Y, en déplacent de haut en bas (axe vertical) j'applique une rotation par rapport à l'axe X. Le problème c'est q'une fois que la caméra je trouve derrière la sphère... ça ne va plus xD


Je vais essayer d'expliquer ça autrement:
imagine un personnage marchant sur une sphère. Si tu veux faire avancer le personnage, tu déplace ta souris vers l'avant, inversement pour reculer, en déplaçant la souris de gauche à droite, tu modifie la rotation.
C'est ça que je cherche, permettre à la caméra d'avancer, de pouvoir la tourner (viser le centre de la sphère j'ai déjà réussi, donc pas la peine de gérer ^^)


j'espère que ça t'as aidé à comprendre ^^

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 14 Juil 2009, 00:52

ca yes tj'ai compris. donc sauf erreur, tu veux pouvoir calculer la position du gars apres chaque rotation. Sauf qu'en fait la rotation "droite" se fera pas toujours autour de la Y. idem pour les autres axes. La rotation se fait par rapport a la position du gars sur la sphere
la vie est une fête :)

pinkmountain
Messages: 5
Enregistré le: 13 Juil 2009, 23:58

par pinkmountain » 14 Juil 2009, 00:54

^^

je peux donner un autre exemple xD
(je le donne parce que je le trouve drôle ^^')


imagine un poisson rouge dans un bocal en verre parfaitement sphérique, le poisson tourne en rond contre les bords en voulant à tout prix sortir.
Bah là c'est l'inverse, il est dehors et veut rentrer xD

ok je sors ....

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 14 Juil 2009, 10:43

re,

une manière de voire la chose plus facilement, c'est d'allonger notre bonhomme qui regarde la sphère lui frotter le nez. Lorsqu'il décide d'avancer, la sphère tourne en "essayant de lecraser". Lorsqu'il veut aller a droite, la sphère tourne vers la gauche.

notons le point initial de contact entre la tete du bonhomme fixe et la sphère. le centre de la sphère de rayon r.
Posons :
le vecteur
le vecteur qui va du gars vers la droite
le vecteur qui va du gars vers le haut.
(histoire d'avoir un repere orthonormé direct).
On définit donc les angles




l'angle theta va definir si la sphere tourne vers la droite ou vers la gauche
l'angle psi si la sphère avance ou recule
l'angle phi si le payage apercu tourne ou pas. (on ne servira donc pas de phi)

Prenons le cas ou la sphère avance vers le gars (idem celui avance sur la sphère).

on se pose une matrice de rotation (pour la premiere rotation). Dans le cas ou la sphère tourne, c'est une rotation dangle psi, cad Celle-ci transforme le repère (matrice identité) en repère .
Notre point , point apres rotation et exprimé dans la base a pour coordo . Il s'agit de trouver ses coordo dans le repère .
On a :

et
car est une matrice de rotation donc son inverse est sa transposée.

J'espère ne pas dire trop d'anneries :marteau:
la vie est une fête :)

pinkmountain
Messages: 5
Enregistré le: 13 Juil 2009, 23:58

par pinkmountain » 14 Juil 2009, 12:39

re


J'ai pas tout saisi mais je vais quand même essayer cette méthode.
Je te dis quoi une fois les tests terminés.



Et merci pour ton aide ;)

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 71 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