Calculating rotation in > 360 deg. situations

Posted by danglebrush on Stack Overflow See other posts from Stack Overflow or by danglebrush
Published on 2010-03-23T13:57:01Z Indexed on 2010/03/24 14:13 UTC
Read the original article Hit count: 282

Filed under:
|
|

I'm trying to work out a problem I'm having with degrees. I have data that is a list of of angles, in standard degree notation -- e.g. 26 deg.

Usually when dealing with angles, if an angle exceeds 360 deg then the angle continues around and effectively "resets" -- i.e. the angle "starts again", e.g. 357 deg, 358 deg, 359 deg, 0 deg, 1 deg, etc. What I want to happen is the degree to continue increasing -- i.e. 357 deg, 358 deg, 359 deg, 360 deg, 361 deg, etc. I want to modify my data so that I have this converted data in it.

When numbers approach the 0 deg limit, I want them to become negative -- i.e. 3 deg, 2 deg, 1 deg, 0 deg, -1 deg, -2 deg, etc.

With multiples of 360 deg (both positive and negative), I want the degrees to continue, e.g. 720 deg, etc.

Any suggestions on what approach to take? There is, no doubt, a frustratingly simple way of doing this, but my current solution is kludgey to say the least .... ! My best attempt to date is to look at the percentage difference between angle n and angle n - 1. If this is a large difference -- e.g. > 60% -- then this needs to be modified, by adding or subtracting 360 deg to the current value, depending on the previous angle value. That is, if the previous angle is negative, substract 360, and add 360 if the previous angle is positive.

Any suggestions on improving this? Any improvements?

© Stack Overflow or respective owner

Related posts about trigonometry

Related posts about rotation