Formeln: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Keine Bearbeitungszusammenfassung |
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]] | ||
