PDA

View Full Version : Rotation Angles for 3D Vector


112358
Nov29-06, 12:05 PM
Hello folks!

So, I'm working on a java applet where I want to rotate an object to point in the direction that it is moving. I have its velocity stored as a 3D vector (x,y,z) and I am using a 3D library that allows for rotation on any axis (x,y, or z).

It's my understanding that I need to calculate the Euler angles for rotation along all 3 axes. I've found a lot of help online for calculating Euler angles from a rotation matrix. My issue is that I don't have a rotation matrix, i just have the velocity vector of the object. Can anyone help me understand how to calculate rotation angles from a 3D vector? Do I need to first calculate a rotation matrix and then calculate Euler angles?

My pseudo-code for what I am attempting is as follows:

angle1 = getXRotation(velocity);
angle2 = getYRotation(velocity);
angle3 = getZRotation(velocity);

translate(location)
rotateX(angle1)
rotateY(angle2)
rotateZ(angle3)
draw object!

Thanks all!!

leon1127
Nov30-06, 01:55 AM
Try to search quaternion, SU(3), unit complex number, etc. Quaternion may help you to simplify a lot of calculation.

nikolatesla20
Nov30-06, 09:17 AM
Google for "3D rotation matrices"

I get a hit:

http://www.euclideanspace.com/maths/algebra/matrix/orthogonal/rotation/index.htm

Also, quaternions I've seen on the 'net quite a few infos about them being overrated:

http://www.gamedev.net/community/forums/topic.asp?topic_id=298882


I personally think using matrices is more intuitive.

-niko