Vektor oder Winkel oder wie?
-
Also ich mach noch nicht allzulange in OpenGL rum... jetzt steh ich vor dem Problem dass ich nen Objekt habe, dass auch in die Richtung "gehen" soll in die es gerichtet ist. Nun find ich überall irgend nen komischen Kram mit Vektoren um das zu bewerkstelligen. Aus 2d Zeiten kenn ich das aber noch irgendwie so:
posx+=sin(direction*pi/180)*speed; posy-=cos(direction*pi/180)*speed;
das nach 3d zu erweitern sollte ja kein Problem sein.... irgendwie kommt es mir auch um einiges simpler vor und mit Winkeln komm ich eh besser klar.
Kann mir vieleicht mal jemand sagen wie ich das jetzt machen soll?
-
Also auf diese Art oder doch besser mit Vektoren?
-
Na das sind doch Vektoren...
-
echt? Aso... ähm *grübelgrübel*
Aber Vektoren sind doch so Richtungspfeile ohne Winkel? Hmmm.... öhm, wieso ist Vektorrechnung dann so kompliziert?
Kann mir jemand vieleicht nen Tipp geben, wie ich das jetzt mit nem Vektor mach, dass dieses Objekt dann immer in die Richtung fliegt geht oder was auch immer, in die es gearde schaut? Und wie muss ich dann den Vektor ändern, wenn das Objekt sich zB 30° nach links dreht?
-
Hallo, die z-Achse eines Objekts (also die Richtung, in die es "schaut") kannst Du so berechnen (gegeben sind die Winkel für die Rotation um die x- und um die y-Achse):
Axis.x = sinf(RotY) * cosf(RotX);
Axis.y = sinf(RotX);
Axis.z = cosf(RotY) * cosf(RotX);
-
Cool, danke, genau so hab ich es gebraucht. ICh würd ja auch eigentlich auch gerne dein buch kaufen, aber das ist halt so ne Sache mit DirectX...
-
Original erstellt von <ZUCHT>:
Aber Vektoren sind doch so Richtungspfeile ohne Winkel? Hmmm.... öhm, wieso ist Vektorrechnung dann so kompliziert?Ja und cos(bla), was ja auch nur 'ne Zahl ist, usw. sind die Komponenten dieses Richtiungspfeiles, der wird nämlich in x,y (,z,...) aufgeteilt. So muss man Rechnungen, die man für alle Komponenten macht, nur einmal aufschreiben, darum ist das auch nicht kompliziert sonndern einfacher!