Formeln: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Florian (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Florian (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 39: Zeile 39:
<math>\vec d_{ot}.normalize() \!\,</math>
<math>\vec d_{ot}.normalize() \!\,</math>


Die Berechnung des Winkels um die Y-Achse geht dann analog zum 2D Fall durch das projizieren des Forwardvektors des Objekts und des Richtungsvektors vom Objekt zum Zielpunkt auf die X-Z-Ebene und das anschließende Berechnen des Winkels zwischen diesen beiden Vektoren. Hinzu kommt nun also lediglich die Berechnung des Winkels um den um die X-Achse gedreht werden muss. Diesen Winkel kann man berechnen indem man den Richtungsvektor vom Objekt zum Zielpunkt in die Ebene die vom Forwardvektor des Objekts aufgespannt wird projiziert (<math>\vec d_f \!\,</math>) und dann den Winkel zwischen diesen beiden Vektoren bestimmt:
Die Berechnung des Winkels um die Y-Achse geht dann analog zum 2D Fall durch das projizieren des Forwardvektors des Objekts und des Richtungsvektors vom Objekt zum Zielpunkt auf die X-Z-Ebene und das anschließende Berechnen des Winkels zwischen diesen beiden Vektoren. Hinzu kommt nun also lediglich die Berechnung des Winkels um den um die X-Achse gedreht werden muss. Diesen Winkel kann man berechnen indem man den Richtungsvektor vom Objekt zum Zielpunkt in die Ebene die vom Forwardvektor des Objekts aufgespannt wird projiziert (<math>\vec d_f \!\,</math>) und dann den Winkel zwischen diesen beiden Vektoren bestimmt. Dazu berechnet man den Y-Wert des Vektors der vom Forwardvektor des Objekts zum Richtungsvektor vom Objekt zum Zielpunkt geht und addiert diesen zum Y-Wert des Forwardvektors:


<math>tempY = \vec d_{ot}.y - \vec o_f.y \!\,</math> <br/>
<math>tempY = \vec d_{ot}.y - \vec o_f.y \!\,</math> <br/>
<math>\vec d_f = \vec o_f \!\,</math> <br/>
<math>\vec d_f = \vec o_f \!\,</math> <br/>
<math>\vec d_f.y = tempY \!\,</math>
<math>\vec d_f.y += tempY \!\,</math> <br/>
<math>\vec d_f.normalize() \!\,</math> <br/>
 
Der gesuchte Winkel ist dann der Arkuscosinus des Skalarprodukts des Forwardvektors des Objekts und des in die selbe Ebene projizierten Richtungsvektors vom Objekt zum Zielpunkt:
 
<math>\measuredangle\left(\vec o_f, \vec d_f\right) = \arccos (\vec o_f \cdot \vec d_f) \!\,</math>
 
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]]