Formeln: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 5: | Zeile 5: | ||
== Drehung zu einem Ziel im 2D Fall == | == Drehung zu einem Ziel im 2D Fall == | ||
Im folgenden wird erklärt wie man ein Objekt im zweidimensionalen Fall, also auf einer Ebene, zu einem Ziel drehen kann. Die Vorraussetzungen die man hierzu benötigt sind der Positionsvektor des Objekts (<math>\vec o_p \!\,</math>), der Forwardvektor des Objekts welcher angibt in welche Richtung es gerade gedreht ist und der Positionsvektor des Zielpunkts zu welchem sich das Objekt drehen soll. Gehen wir im | Im folgenden wird erklärt wie man ein Objekt im zweidimensionalen Fall, also auf einer Ebene, zu einem Ziel drehen kann. Die Vorraussetzungen die man hierzu benötigt sind der Positionsvektor des Objekts (<math>\vec o_p \!\,</math>), der Forwardvektor des Objekts (<math>\vec o_f \!\,</math>) welcher angibt in welche Richtung es gerade gedreht ist und der Positionsvektor des Zielpunkts (<math>\vec t_p \!\,</math>) zu welchem sich das Objekt drehen soll. Gehen wir im weiteren davon aus dass sich das Objekt auf der X-Z-Ebene bewegt, um es zum Zielpunkt zu drehen müssen wir es also um seine eigene Y-Achse drehen. Für andere Ebenen funktioniert das ganze analog, es muss nur entsprechend immer um die zur Ebene orthogonale Achse gedreht werden. | ||
Als erstes berechnet man nun den X- und Z-Wert des Richtungsvektors vom Objekt zum Zielpunkt, | Als erstes berechnet man nun den X- und Z-Wert des Richtungsvektors vom Objekt zum Zielpunkt (<math>\vec d_{ot}\!\,</math>). Der Y-Wert wird auf 0 gesetzt weil wir den Winkel in der X-Z-Ebene ausrechnen wollen. Zusätzlich wird der Vektor noch normalisiert um die Berechnung des Winkels später zu vereinfachen: | ||
<math>\vec d_{ot} = \vec t_p - \vec o_p \!\,</math> <br/> | |||
<math>\vec d_{ot}.y = 0 \!\,</math> <br/> | |||
<math>\vec d_{ot}.normalize() \!\,</math> | |||
Dann projiziert man den Forwardvektor des Objekts ebenfalls auf die X-Z-Ebene (indem man den Y-Wert auf 0 setzt) und normalisiert den Vektor: | |||
<math>\vec o_f.y = 0 \!\,</math> <br/> | |||
<math>\vec o_f.normalize() \!\,</math> | |||
Das Skalarprodukt des Richtungsvektors zum Zielpunkt und des Forwardvektors liefert nun den Arkuscosinus des Winkels um den das Objekt zum Zielpunkt auf der Y-Achse gedreht ist: | |||
<math>\measuredangle\left(\vec d_{ot}, \vec o_f\right) = \arccos (\vec d_{ot} \cdot \vec o_f) \!\,</math> | |||
[[Kategorie:Mathematik]] | [[Kategorie:Mathematik]] | ||
