-
Rotations about an arbitrary axis
I have a vector, v = (v1,v2,v3), that I want to rotate about another vector r = (r1,r2,r3). I want to know the result, p = (p1,p2,p3), of this transfomration.
Is there an easy way of doing this?
glRotate3d does this automatically but I don't know how to get the result of its calculation.
Can I get OpenGL to do the calculation for me and return the result?
-
Member
Regular Contributor
Re: Rotations about an arbitrary axis
sure! the steps are:
-setup a identity matrix
-translate by your source point
-rotate about the axis
-retrieve the translation vector of the matrix
in code:
glMatrixMode(GL_MODELVIEW_MATRIX);
glLoadIdentity();
glTranslatef(v1,v2,v3);
glRotatef(degrees,r1,r2,r3);
float matrix[4][4];
glGetFloatv(GL_MODELVIEW_MATRIX,(float *)matrix);
your transformed point is hold into the last row of matrix, matrix[3], so:
p1=matrix[3][0]
p2=matrix[3][1]
p3=matrix[3][2]
Dolo/\/\ightY
[This message has been edited by dmy (edited 03-27-2000).]
-
Re: Rotations about an arbitrary axis
Thanks for your help DMY -I really appreciate it.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules