Vector Ausrichten
-
Hi
Ich versuche mich gerade in 3D und stehe vor einen kleinen Problem. Ich habe einen Vector der die Ausrichtung eines objekts anzeigt. Ich habe auch die 3 Variablen um wie viel das Objekt gedreht ist. Die Frage ist jetzt wenn ich das Objekt drehe muss ich ja diese Achse zum Ausrichten mitdrehen. Wie mache ich das??
-
Die Formeln hab ich aus dem Tutorial vom Zerbst:
m_vDir.x = fCosPitch*fSinYaw; m_vDir.y = -fSinPitch; m_vDir.z = fCosPitch*fCosYaw;
Wenn Dein Objekt nicht symetrisch ist wirst Du wohl auch einen Up- und Right- Vektor brauchen:
m_vRight.x = fCosYaw*fCosRoll + fSinYaw*fSinPitch*fSinRoll; m_vRight.y = fSinRoll*fCosPitch; m_vRight.z = fCosYaw*fSinPitch*fSinRoll - fSinYaw*fCosRoll; m_vUp.x = fSinYaw*fSinPitch*fCosRoll - fCosYaw*fSinRoll; m_vUp.y = fCosRoll*fCosPitch; m_vUp.z = fSinRoll*fSinYaw + fCosRoll*fCosYaw*fSinPitch;
-
Wenn Dein Objekt nicht symetrisch ist wirst Du wohl auch einen Up- und Right- Vektor brauchen:
Wie ist das zu verstehen
Ich kann mir leider nicht erklären, wieso ein Objekt mehr als einen Richtungsvektor brauch... es geht doch immer nur in eine Richting??
-
Aber man kann ja in vielen Lagen nach Norden schauen, z.b. liegend, auf dem Kopf stehend...
-
ok... Recht haste, jetzt hab ichs kapiert
Danke
-
Aber eigtnlich bräuchte man doch nur 2 vektoren?!
-
stimmt irgendwie schon
jetz bin ich doch wieder
-
Ein Vector Zeigt nach vorne
Ein Vector Zeigt nach rechts
Ein Vector nach oben
-
aber 2 würden reichen
s. ogl befehl "gluLookAt", da muss man auch nur 3 vektoren übergeben!
[ Dieser Beitrag wurde am 07.06.2003 um 20:43 Uhr von DasPinsch editiert. ]
-
Wahrscheinlich braucht man schon 3, sonst würdens ja nicht alle machen (Gruppenzwang)
Außerdem ist der dritte Vektor praktisch wenn der Spieler oder das Objekt sich in eine bestimmte Richtung bewegen soll.
-
Hmm.. also brauchen tut man das dritte teil auf keinen fall, denke aber auch dass dann die berechnungen einfach werden
-
Einer der 3 Vektoren ist Kreuzprodukt der anderen 2.