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

Rotation around a tilted axis.

  1. Nov 5, 2011 #1
    I am writing a little code that should make an object revolve around a tilted axis.

    Here is what I have:
    -The center coordonates
    -A normal array (3 numbers between 0 and 1);
    -position of the object.

    Is there a way to do this?

    I think:
    Should be it , but I can't work out how to use it. Does the formula return an array?
  2. jcsd
  3. Nov 9, 2011 #2

    Stephen Tashi

    User Avatar
    Science Advisor

    Which formula in that article are you talking about?

    If you want a conceptually simple way of doing it, consider this:

    Do you know how to write code that would change from one coordinate system to another? If you change coordinates so that the "center" of the rotation becomes the origin in the new coordinate system and the axis of rotation becomes the z-axis in the new coordinates system then you can apply the formula for rotating an object about the z-axis. Get the coordinates of interest in the new coordinate system and then transfer those coordinates back to the original coordinate system.

    I've read articles by people who do computer animation that say that using quaterions is the best way to deal with the motion of objects. Are you doing animation?
  4. Nov 9, 2011 #3


    User Avatar
    Science Advisor

    Hey cake21 and welcome to the forums.

    One method you might want to consider is to use quaternions and then after you computer the final output quaternion, convert it to a linear transformation (matrix) and then apply that matrix to the points you need to do.

    The reason why I recommend this is because if you want to multiple rotations, or some something like rotation interpolations, quaternions are probably the best way of doing this, and building a quaternion library is not a hard thing to do either.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook