Sign in to follow this  
shaKu_shawn

rotate point around origin by angle

Recommended Posts

I am not 100% clear on the math for what i am trying to do... let me give you a sample situation... i have a point lets say 15,5 which is the point of an arrow. I have another point which is the base of the arrow (my origin) which is 2,2... what i am doing is i need to rotate the arrow on its origin by 45 degrees and find out the new point for the tip... if somone could give me the equation and a sample solution using the equation for these values it would be great!

Share this post


Link to post
Share on other sites
This isn't homework, is it? (Just checking...)

Anyway, to rotate about an arbitrary point:

1. Translate the point by the negative of the pivot point
2. Rotate the point using the standard equation for 2-d (or 3-d) rotation
3. Translate back

Share this post


Link to post
Share on other sites
jyk is correct, and here is an example of how you would do that:


Firstly, translate:

v = (15,5) - (2,2) = (13,3)

Now rotate by 45°:

v = (13*cos 45° - 3*sin 45°, 13*sin 45° + 3*cos 45°) = (7.07.., 11.31..)

And finally, translate back:

v = v + (2,2) = (9.07.., 13.31..)


And there's your answer.


(For the rotation stage, you might find this useful:
http://mathworld.wolfram.com/RotationMatrix.html )

Share this post


Link to post
Share on other sites
haha nah its not homework... working on a 2d sprite based game in XNA and needed this equation for translating the sprite per-pixel collision information based on the current sprite rotation ;) (the game is just for fun by the way)... thanks a ton for the help!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this