Determining rotation angles for Rotation System B that produce the same result as Rotation System A

Started by
6 comments, last by Buckeye 9 years, 2 months ago

I am trying to find a solution to a problem such that

Given an initial coordinate system comprised of 3 orthogonal axes X, Y, Z, where Z is up, Y is North and X is East.

Given a rotation definition (A) which describes successive rotations about each axes.

Given the rotation angles for each axes produce a rotated coordinate system.

For a rotation definition (B) which describes successive rotations about each axes, find the rotation angles that produce the same coordinate system as produced by rotation definition A.

For example:

If rotation definition A is defined by 3 successive rotations around Z, then Y and then X, all defined positive counter-clockwise from East to North, i.e. (+Z +Y +X), and whose angles are bounded by -180 and + 180 degrees.

And if rotation definition B is defined by 3 successive rotations around Z, then X, and then Z again, the first rotation being defined positive clockwise from North to East (i.e. Azimuth or A), the second one positive counter-clockwise from East to North and the third one positive clockwise from East to North, i.e. (A +X, -Z). The first rotation angles are bounded by 0 to 360 degrees, while the second and third are bounded by -180 to + 180 degrees.

Find the rotation angles for definition B that produce the same result as definition A.

I am hoping to utilise a general algorithm into which I input the two rotation definitions and angles for the first definition.

I hope my description makes sense. I have included some images to help visualise the problem.

The first image shows rotation definition A with angles 90, 10 and 20 and a visualisation of a 3D reference plane produced by the rotations.

The second image shows rotation definition B with the angles required to produce the same 3D reference plane. It is these angles I wish to calculate.

Thanks in advance.

Advertisement
Why do you want this? Three angles is a horrible way to represent rotations for most purposes. Yours is but one of many examples of how messy things get.

At work we use various applications that each use different rotation conventions. I am trying to write an application that will provide the angles for all of the different 'conventions' in one place to make life easier for people moving from one application to the next. And yes it does get messy and mistakes can easily be made, hence why I am trying to make it easier for people.

It's bad form to cross post in these forums, and in general on the web. Buckeye already seems to be working with you in your other thread, so I recommend you stick with that one and have someone close this one down.

Ok I apologise for that. It was Buckeye who suggested I post here though as he thought some of you guys might be able to help.

I think you`re after this:

Euler Angle Formulas. Looks like a complete list of all possible factorizations. Eberly/Geometric Tools has also other useful papers and code, so I suggest browsing around.

I think you`re after this:

Euler Angle Formulas. Looks like a complete list of all possible factorizations. Eberly/Geometric Tools has also other useful papers and code, so I suggest browsing around.

Thanks, I will.

It's bad form to cross post in these forums, and in general on the web. Buckeye already seems to be working with you in your other thread, so I recommend you stick with that one and have someone close this one down.

Mea culpa. In the other thread, donvreug had characterized the problem related to graphics rotations. I was the one, indeed, who suggested that characterizing it as a math problem and posting it in math/physics forums might bring it before math gurus who may not see it otherwise. Mentioning the gamedev Math/Physics forum was a lapse in judgement on my part.

Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.

You don't forget how to play when you grow old; you grow old when you forget how to play.

This topic is closed to new replies.

Advertisement