Vektor in richtung von deinem anderen drehen
-
mal ne bessere beschreibung:
ich hab nen spieler
der steht bei der position
vector3df(3, 0,
und die rotation ist
vector3df(0, 90, 0)dann hab ich noch nen gegner, der den spieler anschauen soll.
position des gegners:
vector3df(6, 0, 4)
rotation = unbekannt/gesuchthier mal eine "grafische" darstellung:
P = spieler G = gegner 0 1 2 3 4 5 6 7 8 9 1 2 3 4 G 5 6 7 8 P 9
jetzt will ich wissen, welchen vektor ich bei der rotation des gegners angeben muss, damit dieser in richtung des spielers schaut.
@TGGC:
na, mal wieder ein ganz sinnvoller beitrag, was?
wenn es so viele gibt, kannste ja mal eine posten.
danke
-
nuclearspider schrieb:
jetzt will ich wissen, welchen vektor ich bei der rotation des gegners angeben muss, damit dieser in richtung des spielers schaut.
P-G
Bye, TGGC (Pipe my World.)
-
Es gibt unendlich viele Lösungen.
stimmt, ich bezog mich mal auf die ebene die von den beiden vektoren aufgespannt wird
um TGGCs antwort zu übersetzen:
eine matrix baun mit G-P als richtung für die z-achse und z.b. ( 0, 1, 0 ) als richtung für die y-achse.
x -> krezuprodukt z, y.
dann y noch einmal neu per kreuzprodukt aus x und z ( damits auch sicher orthognal is)
nicht vergessen alle vektoren zu normalisieren und die position des gegners auch noch als translation reinzunehem, fertig ist die weltmatrix des gegners.
so würd ichs spontan machen...
-
sry,
aber mit vektorrechnung kenn ich mich noch net so gut aus (macht man ja soweit ich weiss auch erst in der 12.)
kannst du mir das ein bisschen genauer erklären? (so vonwegen kreutprodukt etc)
danke
-
@dot: auch dann gibts unendlich viele Lösungen.
Bye, TGGC (Pipe my World.)
-
auch dann gibts unendlich viele Lösungen.
?
-
nuclearspider schrieb:
kannst du mir das ein bisschen genauer erklären? (so vonwegen kreutprodukt etc)
Googlen oder Mathe-Forum.
-
TGGC schrieb:
Es gibt unendlich viele Lösungen.
Nicht im R2.
-
sag ich ja.
du solltest dich mit vektorrechnung vertraut machen bevor du anfängst (3d) spiele zu programmieren. ohne dem gehts nicht
keine angst, is nicht so kompliziert, im prinzip brauchst du nur die 4 grundrechnungsarten.
-
sag ich ja.
du solltest dich mit vektorrechnung vertraut machen bevor du anfängst (3d) spiele zu programmieren. ohne dem gehts nicht
keine angst, is nicht so kompliziert, im prinzip brauchst du nur die 4 grundrechnungsarten.
-
sag ich ja.
du solltest dich mit vektorrechnung vertraut machen bevor du anfängst (3d) spiele zu programmieren. ohne dem gehts nicht
keine angst, is nicht so kompliziert, im prinzip brauchst du nur die 4 grundrechnungsarten.
-
oops, sorry, ka wie das jetzt ging, mein internet hatte nen hänger
2x löschen bitte...
-
Sgt. Nukem schrieb:
TGGC schrieb:
Es gibt unendlich viele Lösungen.
Nicht im R2.
Doch.
Bye, TGGC (Pipe my World.)
-
dann klär uns unwissende mal auf, ich bin gespannt
-
dot schrieb:
oops, sorry, ka wie das jetzt ging, mein internet hatte nen hänger
Meins auch. Trotzdem hab' ICH nur einen Post derweil erstellt... :p
TGGC schrieb:
Sgt. Nukem schrieb:
TGGC schrieb:
Es gibt unendlich viele Lösungen.
Nicht im R2.
Doch.
Ach, leck' mich doch am Arsch, Du hast gewonnen... tschüss!! :p
-
Ihr dreht Euch im Kreis.
Bye, TGGC (Pipe my World.)
-
Wenns 3D ist:
-normalize(Playerposition - Gegnerposition) ist Vektor v1 zum Spieler
-v2 ist vektor des Gegners
-du willst v2 drehen dass er auf v1 liegt
entweder:
-v2 x v1 ist die Rotationsachse
-arccos(v2 dot v1) ist der Winkel
-Rotationsmatrix aus Achse und Winkel bauen (google)
-gegner_kopf_vertex = matrix * gegner_vertex
oder wenn du das mit den 3 Winkeln um x, y und z-Achse speichern willst(nicht getestet, sollte Probleme bereiten können, könnte aber funktionieren, vorallem wenn du nur um eine Achse drehen willst):
-v1.drehachse = v2.drehachse = 0; // für drehachse = y werden beide Vektoren auf den Boden projiziert
-arccos(v1 dot v2) = Drehwinkel um drehachse
-
TGGC schrieb:
Ihr dreht Euch im Kreis.
Bye, TGGC (Pipe my World.)
nein nur der Spieler ist periodisch mit x+2Pi am drehn.
-
@ spl@t:
danke,
aber was ist eigentlich "dot" ?
-
äh ja, hier...
homo sapiens sapiens, männlich, 19 jahre alt...
ok, im ernst
er meint das punktprodukt, auch dot product oder skalarprodukt genannt.