Formeln: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Florian (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Florian (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 18: Zeile 18:
<math>\vec o_f.normalize() \!\,</math>
<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:
Das Skalarprodukt des Forwardvektors und des Richtungsvektors zum Zielpunkt 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>
<math>\measuredangle\left(\vec o_f, \vec d_{ot}\right) = \arccos (\vec o_f \cdot \vec d_{ot}) \!\,</math>
 
Jetzt muss man nur noch bestimmen ob man das Objekt um diesen Winkel nach links oder rechts drehen muss um es zum Ziel hin auszurichten. Dies lässt sich nun leicht anhand des Y-Werts des Kreuzprodukts der beiden Winkel bestimmen. Da beide Vektoren auf der X-Z-Ebene liegen, liegt der Vektor des Kreuzprodukts auf der Y-Achse, da dieser orthogonal zu den anderen Vektoren ist. Das Vorzeichen des Y-Werts des Kreuzprodukts gibt daher an ob man nach links oder rechts drehen muss:
 
<math>crossY = \vec o_f.z \cdot \vec d_{ot}.x - \vec o_f.x \cdot \vec d_{ot}.z \!\,</math> <br/>
 
Wenn crossY > 0 ist dann muss man nach links drehen, ansonsten nach rechts. (Dies kann man mit der Rechte-Hand-Regel bestimmen.)


[[Kategorie:Mathematik]]
[[Kategorie:Mathematik]]