[RESOLU] [AIDE] Vecteurs 3D

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
Zoro-San
Messages: 2
Enregistré le: 30 Avr 2010, 15:52

[RESOLU] [AIDE] Vecteurs 3D

par Zoro-San » 30 Avr 2010, 15:55

Bonjour.

Je suis nouveau sur ce forum, et je suis venu afin de demander de l'aide. Un ami à moi est en train de programmer un jeu vidéo, et vu qu'il est assez âgé, il a oublié quelques notions apprises en Terminale. La notion en question est : Les vecteurs en 3 dimensions ...
Nous avons essayé de vous décrire au mieux le problème (ci-dessous), donc si il vous manque quelques informations, n'hésitez surtout pas à me les demander.

Dans un jeu vidéo, un personnage vole dans un repère orthonormée (x, y, z).

Je possède son point de départ A(x, y, z), ainsi que l'angle directionnel horizontale et l'angle directionnel verticale du personnage (directionnel car il correspond à la où il va regarder, et va aller). L'angle horizontal vaut 0 quand le personnage regarde l'axe des x. Ce personnage évolue à une vitesse V (que je connais), durant un laps de temps t (que je connais).

Comment puis-je connaitre la nouvelle position du personnage après t minutes ?



Arnaud-29-31
Membre Complexe
Messages: 2110
Enregistré le: 06 Avr 2010, 15:00

par Arnaud-29-31 » 30 Avr 2010, 16:07

Bonjour,

Quand tu dis l'angle horizontal vaut 0 quand le personnage regarde l'axe des x, tu veux dire que cet angle vaut 0 quand le vecteur déplacement projeté sur le plan (x,y) est suivant x ?

Pour l'autre angle, tu prend son origine comment ? 0 quand le vecteur déplacement est parallèle au plan (x,y) ou bien 0 quand il est parallèle a l'axe x ?

annick
Habitué(e)
Messages: 6291
Enregistré le: 16 Sep 2006, 09:52

par annick » 30 Avr 2010, 16:10

Bonjour,
une piste déjà : v=L/t donc L=vt.

Donc si ton personnage par de A et arrive en A', L=AA'

Si A a pour coordonnée (xA,yA,zA) et A'(x'A,y'A,z'A), ton vecteur AA' a pour coordonnées ((x'A-xA),(y'A-yA),(z'A-zA)) et la distance AA' est donc égale à

racine carrée((x'A-xA)²+(y'A-yA)²+(z'A-zA)²)

Donc :L=AA'=racine carrée((x'A-xA)²+(y'A-yA)²+(z'A-zA)²)=vt

Par contre, je ne comprends pas bien ce que sont tes angles directionnels horizontaux et verticaux ?

Arnaud-29-31
Membre Complexe
Messages: 2110
Enregistré le: 06 Avr 2010, 15:00

par Arnaud-29-31 » 30 Avr 2010, 16:22

Oulaaa attention c'est pas vraiment dans cette direction qu'il faut partir ...

Il faut projeté le vecteur vitesse dans la base (x,y,z) (tu as sa norme qui est v)

Je te balance direct ce que ca fait vu que apparemment c'est uniquement le résultat que tu recherches ...

Ca donne

Et après un temps t, le personnage parti du point A se retrouve au point de coordonnées.



Avec ton "angle horizontal" et ton "angle vertical"

Teacher
Membre Rationnel
Messages: 732
Enregistré le: 12 Nov 2007, 20:03

par Teacher » 30 Avr 2010, 16:23

La démonstration c'est pour le plaisir :)

Arnaud-29-31
Membre Complexe
Messages: 2110
Enregistré le: 06 Avr 2010, 15:00

par Arnaud-29-31 » 30 Avr 2010, 16:32

Effectivement, si tu t'ennuie ce soir, cette démonstration est un très bon exercice :)

divinepunition
Messages: 4
Enregistré le: 30 Avr 2010, 16:37

par divinepunition » 30 Avr 2010, 16:43

Arnaud-29-31 a écrit:Oulaaa attention c'est pas vraiment dans cette direction qu'il faut partir ...

Il faut projeté le vecteur vitesse dans la base (x,y,z) (tu as sa norme qui est v)

Je te balance direct ce que ca fait vu que apparemment c'est uniquement le résultat que tu recherches ...

Ca donne

Et après un temps t, le personnage parti du point A se retrouve au point de coordonnées.



Avec ton "angle horizontal" et ton "angle vertical"




Bonsoir !

Effectivement je pense que vous m'avez apporter la réponse que je cherchais (oui c'était pour moi)

Je vous poste tout de même un dessin que j'avais fait pour l'occasion au cas où d'autres personnes chercherais la même chose :

Image

J'avoue que si vous aviez le temps et l'envie de me montrer la démonstration j'aimerais beaucoup la voir (pour m'instruire)

Je n'aimais pas beaucoup les vecteurs à l'époque et c'est dommage, car je vois aujourd'hui ce que ça apporte (d'ailleurs pour motiver vos élèves si vous êtes prof, montrer leur que cette application est utilise à la conception de jeux vidéo, ça interpellera pas mal de jeune vu le nombre de passionné d'informatique aujourd'hui)

En même temps je suis passé par la filiale STL donc le niveau en math n'était pas très élevé ce qui explique mes difficulté à résoudre un tel probleme.

En tout cas merci beaucoup de vos réponses et de leur rapidité ! :++:

Teacher
Membre Rationnel
Messages: 732
Enregistré le: 12 Nov 2007, 20:03

par Teacher » 30 Avr 2010, 16:49

Mais quelle idée de faire des jeux en 3D :we:

divinepunition
Messages: 4
Enregistré le: 30 Avr 2010, 16:37

par divinepunition » 30 Avr 2010, 17:16

je ne vous le fait pas dire :we: (en fait c'est la passion et l'envie d'apprend qui me prend un peu tard :p)

Donc ça n'a pas l'air de marcher... Comme je ne l'ai pas dit (^^) je fais un émulateur donc coté serveur d'un jeu MMORPG.

Donc mon travail consiste à analyser ce que le client m'envoi comme info et ce qu'un serveur répond.

Actuellement j'ai les information suivantes quand je "commence à voler" :

position du personnage (8426.891,140.7272,3552.113);
3 nombre relatif non identifié : (0.00720479,0.001096844,-0.08347764);
angle horizontale : 4,932861
angle verticale: -0,75
vitesse : 0.002775
nombre de tick processeur au depart (10000 ticks = 1ms) : 129169320285631324

à l'arrivé le client m'envoi la nouvelle position :

position du personnage :
X : 8433,396 soit un ecart de 6,505
Y : 141,7184 soit un ecart de 0,9912
Z : 3476,679 soit un ecart de -75,434
3 nombre relatif non identifié : (0,0,0);
angle horizontale : 4,932861
angle verticale: -0,75
vitesse : 0 (normal je viens de dire stop)
nombre de tick processeur au depart (10000 ticks = 1ms) : 129169320344671324 soit un ecart de 590400 ça correspond à 5.904185 seconde !!


En testant la formule que vous m'avez gentiement proposé je ne retrouve pas les meme résultats...

Donc soit le client m'envoie des stupidités (c'est coréen mais quand meme) soit la formule, qui est certainement juste, n'est pas adapté à mon cas (voir dessin) soit j'ai raté quelque chose... (unité degré ou radian pour les cos ?, les 3 relatif pourrait former un vecteur ? )

Pour la vitesse je pense qu'elle est exprimé en unité/milliseconde. Donc en transposant les ticks en milliseconde je devrais avoir 5904 milliseconde...

Enfin bon si personne ne vois d'autres explications ce n'est pas bien grave le client m'envoi les nouvelles position des qu'un joueurs "pivote" donc à part si il reste sans bouger la souris pendant quelque seconde, je devrais pouvoir connaitre sa position.

Mon but était surtout de connaitre sa position coté serveur afin que si un joueur part sans bouger la souris. Les élements externe (monstres, autres joueurs) puissent le voir...

Merci encore une fois et n'hésitez pas à proposer cet exemple en cours, je vous assure qu'un exemple concret c'est ce qui m'aurait motivé à comprendre à l'ecole !

Arnaud-29-31
Membre Complexe
Messages: 2110
Enregistré le: 06 Avr 2010, 15:00

par Arnaud-29-31 » 30 Avr 2010, 17:30

Ton dessin n'est pas du tout clair, faire face a un axe ne veut pas dire grand chose.
Et pour voir un dessin en 3d, il faut decrire les projeté sur les angles.
(Et pour bien orienter tes angles, il convient de prendre un repère direct, sur ton dessin il est indirect)

Enfin, j'ai pris les angles comme ceci :Image

Et on voit bien que l'angle alpha décrit la manière dont le bonhomme regarde de gauche a droite et beta maniere dont il regarde de haut en bas.
Quand je dis attention aux angles orientés : par exemple beta sera négatif si le bonhomme descend
Alpha sera nul si le bonhomme vient vers nous, egal a 90° s'il part vers la droite egal a 180° s'il s'éloigne de nous, egal à - 90° s'il part à gauche ...

divinepunition
Messages: 4
Enregistré le: 30 Avr 2010, 16:37

par divinepunition » 30 Avr 2010, 19:50

Et bien c'est merveilleux je crois que j'ai totalement compris ton explication :++:

C'est vrai ton dessin est bien plus clair !

Je ne voyais pas les choses comme ça mais en fait ce n'est pas si compliqué quand on raisonne avec vx vy et vz...

Merci bien, donc j'ai juste à trouver maintenant pourquoi je ne retrouve pas les valeurs que me donne le client au depart et à l'arret je dois certainement oublier un élément...je vais chercher un peu plus là dessus. Merci beaucoup

Arnaud-29-31
Membre Complexe
Messages: 2110
Enregistré le: 06 Avr 2010, 15:00

par Arnaud-29-31 » 30 Avr 2010, 19:52

You're welcome ^^

Zoro-San
Messages: 2
Enregistré le: 30 Avr 2010, 15:52

par Zoro-San » 30 Avr 2010, 19:53

Merci beaucoup de votre aide, balise réglé.

divinepunition
Messages: 4
Enregistré le: 30 Avr 2010, 16:37

par divinepunition » 30 Avr 2010, 20:58

ah ba c'est nickel j'ai trouvé pk les valeurs ne se retrouvaient pas... il y a un facteur 4 sur les unité de mesure par rapport à l'echelle des cartes de mondes ^^

ça marche !

 

Retourner vers ✎✎ Lycée

Qui est en ligne

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