- #1

- 1

- 0

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!!