Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Decompose rotations of a vector

  1. Apr 8, 2012 #1
    Hello guys,

    I'm programming a class in C++ that generates a circular signal. The signal consists of a sin and cos in perpendicular directions.

    The user has to input the norm to the surface, and the program generates the sine and cosine in 2 perpendicular directions to that norm to generate the circular signal.

    The question is the following. If the user provided this vector, how can I find those 2 perpendicular vectors?

    I think this problem can be reduced to finding the Euler angles that rotated this vector from being parallel to the z plane. So that the cosine remains on the x-axis, and the sine on the y-axis. Is it possible to decompose it that way?
    Last edited: Apr 8, 2012
  2. jcsd
  3. Apr 8, 2012 #2


    User Avatar
    Science Advisor

    Hey TheDestroyer.

    If you have the vector that is normal to the surface, then you can define the plane using n . (r - r0) = 0 where n is the normal and r0 is a point on the plane. Now to get the orthornomal basis (the two perpendicular vectors with respect to the supplied one) you have to solve the equation n . a = 0 for some a. Just choose the x and y components of a randomly and then solve for the z component of a. Normalize a to a unit vector.

    After this you take the cross product of n and a to get a vector b and then take the cross product of n and b to get c. Normalize c and b and your perpendicular orthogonal unit vectors to n are the normalized c and b vectors and that completes your orthonormalization.
  4. Apr 8, 2012 #3
    Thanks a lot, man :-)
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Similar Discussions: Decompose rotations of a vector
  1. Vector rotation (Replies: 1)

  2. Vector rotation (Replies: 6)