   How can I create some simple right and forward directions from an up direction?
  I have a quaternion that represents my cylinder's orientation.  It can only ever remain upright and the rotation on it's Y axis does not matter.  What I want to do is give it a new "up" direction and then generate a right and forward direction from that.  It doesn't matter what they are as long as they're obviously perpendicular to each other and the "up" direction.Basically, I have a y axis -> I want to generate some simple x and z axis from that.  Ideas?(I need to do this to reorientate my upright cylinder to a new "up" direction)   
  Let's say the vector you're starting with is named Victor. Choose an arbitrary vector, any arbitrary vector (that is not the zero vector) that we'll call Vicky. If the angle between Victor and Vicky is zero choose a new Vicky. Call the projection of Vicky onto Victor, Venus. Subtract Venus from Vicky and you now have a perpendicular vector, Vladimir. Normalize Vladimir and take the cross product of Vladimir and Victor, call it Valerie. Now Vladimir, Victor and Valerie should all now be perpendicular. Keep in mind that the order of the cross product of Vladimir and Victor are significant when calculating Valerie, if you want a consistent set of basis vectors.   ;Quote:Original post by SiCraneLet's say the vector you're starting with is named Victor. Choose an arbitrary vector, any arbitrary vector (that is not the zero vector) that we'll call Vicky. If the angle between Victor and Vicky is zero choose a new Vicky. Call the projection of Vicky onto Victor, Venus. Subtract Venus from Vicky and you now have a perpendicular vector, Vladimir. Normalize Vladimir and take the cross product of Vladimir and Victor, call it Valerie. Now Vladimir, Victor and Valerie should all now be perpendicular. Keep in mind that the order of the cross product of Vladimir and Victor are significant when calculating Valerie, if you want a consistent set of basis vectors.If I missed something, you might as well have pointed me to it rather than using such confusing names.Well, I figured it out with an easier way: Ogre::Vector3::perpendicular() [wink] [grin] Damn how I love this library...[Edited by - agi_shi on September 14, 2007 3:51:45 PM]