Matrix rotation wie mit OpenGL's "glRotatef", funktioniert bloß nicht ganz
-
glRotate produces a rotation of angle degrees around the
vector (x,y,z).wie gibts du der Funktion den Vektor? bool x, y, z - macht wenig Sinn.
BTW:
Hier wird gezeigt wie man die Rotationsmatrixen um X, Y und Z Achse herleiten kann:
http://loop.servehttp.com/~vertexwahn/oldwiki/public_html_an_turing/MatrizenfuerDummies.pdfGoogle liefert Ergebnisse zum Stichwort: "rotation around an arbitrary axis"
auf der seite http://mathlib.zfx.info/html_de/ findest du die ZFX-Math Library, die zeigt wie man solche funktionen implementieren kann
-
Naja ich dachte warum soll ich die X, Y, Z Werte als 'float' übergeben wenn die doch sowieso nur 0.0f oder 1.0f sein sollen?!
-
LukasBanana schrieb:
Naja ich dachte warum soll ich die X, Y, Z Werte als 'float' übergeben wenn die doch sowieso nur 0.0f oder 1.0f sein sollen?!
warum sollte man hier nicht einen beliebengen Vektor angeben können?
-
Naja jedenfalls sind nicht die boolean Werte am Fehler schuld.
Wenn ich nur um eine Achse drehe sieht das ganz normal aus, aber wenn ich um alle oder nur um zwei Achsen drehen will werden die Objekte beim Drehen komisch verzehrt.
-
LukasBanana schrieb:
...werden die Objekte beim Drehen komisch verzehrt.
Na dann Mahlzeit.
-
(x,y,z) ist ein normierter Vektor - steht auch da: ||( x,y,z )|| = 1.
Ist mehr als eins Deiner Bools gesetzt gilt das nicht.
-
hellihjb schrieb:
Ist mehr als eins Deiner Bools gesetzt gilt das nicht.
Moment mal, soll das heißen dass nur ein einziger Wert 1, und die beiden anderen 0 sein müssen?

-
LukasBanana schrieb:
hellihjb schrieb:
Ist mehr als eins Deiner Bools gesetzt gilt das nicht.
Moment mal, soll das heißen dass nur ein einziger Wert 1, und die beiden anderen 0 sein müssen?

bei deiner seltsamen implementierung scheinbar schon

-
soll das heißen dass nur ein einziger Wert 1, und die beiden anderen 0 sein müssen?
Wie gesagt... Du musst den Vektor normieren.
Da Du das entweder nicht willst oder nicht verstehst was das bedeutet, funktioniert die Funktion eben nur dann wenn das zufaellig der Fall ist.
Dank der Bool-Darstellung klappt's immerhin in 37,5%
-
Achso :p *KAPPIER*
ich weiß schon was normieren ist.
die Länge des vectors muss 1 sein.
Achso okay danke