Formeln: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Florian (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Wernerj (Diskussion | Beiträge)
K entfernung toter link
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 23: Zeile 23:


<math>\measuredangle\left(Y-Achse\right) = \measuredangle\left(\vec o_f, \vec d_{ot}\right) = \arccos\left(\vec o_f \cdot \vec d_{ot}\right) \!\,</math>
<math>\measuredangle\left(Y-Achse\right) = \measuredangle\left(\vec o_f, \vec d_{ot}\right) = \arccos\left(\vec o_f \cdot \vec d_{ot}\right) \!\,</math>
:'''Achtung:''' Durch Rundungsfehler in der Gleitkommaberechnung kann es vorkommen dass das Skalarprodukt der Vektoren etwas kleiner wie -1 bzw größer wie 1 wird. Der Arkuscosinus ist allerdings nur für das Intervall [-1;1] definiert! Man muss also z.B. durch einen Aufruf von MathHelper.Clamp(...) sicherstellen dass das Skalarprodukt innerhalb dieses Intervalls liegt!


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:
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:
Zeile 49: Zeile 51:


<math>\measuredangle\left(X-Achse\right) = \measuredangle\left(\vec o_f, \vec d_f\right) = \arccos\left(\vec o_f \cdot \vec d_f\right) \!\,</math>
<math>\measuredangle\left(X-Achse\right) = \measuredangle\left(\vec o_f, \vec d_f\right) = \arccos\left(\vec o_f \cdot \vec d_f\right) \!\,</math>
:'''Achtung:''' Beim Arkuscosinus des Skalarprodukts muss hier die Bereichsprüfung genauso beachtet werden wie oben!


Ob man um diesen Winkel um die X-Achse nach oben oder unten drehen muss ist kann man dann ganz einfach anhand des temporär berechneten Y-Werts bestimmen, wenn tempY > 0 dann dreht man nach oben, andernfalls nach unten.
Ob man um diesen Winkel um die X-Achse nach oben oder unten drehen muss ist kann man dann ganz einfach anhand des temporär berechneten Y-Werts bestimmen, wenn tempY > 0 dann dreht man nach oben, andernfalls nach unten.


[[Kategorie:Mathematik]]
 
[[Kategorie:Mathematik]][[Kategorie:Tutorials]][[Kategorie: Begriffe]]
[[Kategorie:MS01]]
[[Kategorie:MS02]]
[[Kategorie:MS03]]
[[Kategorie:MS04]]
[[Kategorie:MS05]]