Dites que j'ai deux vecteurs 2D, un pour une position actuelle d'objets et un pour cet objet position précédente. Comment puis-je élaborer la direction angulaire du voyage? P>
Cette image pourrait aider à comprendre ce que je suis après: p>
4 Réponses :
Vous ne savez toujours pas ce que vous entendez par des matrices de rotation, mais c'est un cas simple d'obtenir un azimut d'un vecteur de direction.
La réponse compliquée: strong> P> normalement Vous devez emballer quelques fonctions de conversion / utilitaire avec vos vecteurs 2D: un à convertir de X, Y (Carthésien) en Theta, R (coordonnées polaires). Vous devez également prendre en charge des opérations de base vectorielles telles que l'ajout, la soustraction et le produit DOT.
Votre réponse dans ce cas serait la suivante: p> où topolaires () et toparhtesiencoordinate () sont deux fonctions réciproques passant d'un type de vecteur à un autre. P> le simple: strong> p>
Le vecteur de la direction du voyage sera la différence des deux vecteurs de position, maintenant, lorsque vous demandez l'angle de la direction, cela dépend de la direction que vous souhaitez mesurer l'angle. Est-ce contre l'axe X? Allez avec la réponse de RADU. Contre un vecteur arbitraire? Voir la réponse de Jusjeff. P> Edit: Pour obtenir l'angle par rapport à l'axe Y: P> theta = arctan[(x1 - x)/(y1 - y)]
En fait, il est contre l'axe des y je cherche
@ James.ingham: J'espère que cela aide.
@James arctan code> a des problèmes à certains angles (c'est-à-dire s'il y a une fracture par zéro). C'est pourquoi il y a
ATAN2 code> qui traite correctement les cas difficiles.
Cela est vrai, cependant exécuté, l'ATAN2 de mon code prouve trop pour l'appareil et provoque beaucoup de comportement lent. Je dois vous remercier car cela est pour ma thèse et je dois parler de différentes méthodes de faire des choses!
Quelle est la différence entre arctan et tangente inverse? mathwords.com/t/tangent_inver.htm dit qu'ils sont les mêmes (comme je pensais ils étaient)...
Si vous êtes en C (ou une autre langue utilisant la même fonction définie), vous recherchez probablement la fonction Cet angle sera de l'axe vertical, comme vous l'avez marqué et sera mesuré dans les radians em> (unité d'angle de Dieu). p> p> ATAN2 () code>. De votre diagramme:
Soyez prudent d'utiliser Atan2 pour éviter les problèmes de quadrant et la division à zéro. C'est ce que c'est là pour. Toutefois, si vous ne vous souciez pas de savoir s'il s'agit d'un angle de + ve ou de -ve, utilisez simplement la règle du produit DOT (sans charge de la CPU): p> Notez que dans la section Code ci-dessus, si un (ou les deux) vecteurs est proche de 0 longueur, cela va échouer. Donc, vous voudrez peut-être piéger cela en quelque sorte. P> p>
Pouvez-vous expliquer un peu plus? Est-ce dans un espace 2D ou 3D, pouvez-vous donner un exemple de code et que ressemblent vos matrices? Ces matrices stockent-elles des données de rotation (il devrait probablement être un quaternion alors) ou décrivent-ils des transformations?
en.wikipedia.org/wiki/slope_formula ?
Merci Ross, je tente actuellement de mettre les réponses dans la pratique. Je vous ferai savoir comment je mets dans une seconde ...
L'image est maintenant cassée, rendant les réponses moins intelligibles. :(
Je vais passer par mes sauvegardes et le trouver.