[ 
https://issues.apache.org/jira/browse/MATH-363?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Luc Maisonobe resolved MATH-363.
--------------------------------

    Resolution: Fixed

The convention has been chosen according to a vectors perspective rather than a 
frames perspective.
A rotation changes vectors coordinates with respect to frames. If we consider 
the frame is fixed and the vector changes (which is the convention we used), 
then the angle represent the motion of the vector. If we consider the vector is 
fixed but the frame is moving, the angle would represent the motion of the 
frame. If the vector rotates by theta around vector u, it is the same as if 
frame would rotate by -theta around u. Both views may be logical, it really 
depends on the context.

In 3D graphics (as well as in spacecraft attitude determination), vectors are 
mostly fixed and represent some well determined directions, and rotations are 
used to get the coordinates of these vectors in various frames (canonical 
reference frame, observator frame, light source frame, object frame ...). In 
this perspective, our convention seems odd.

In simulation tools, there is only one reference frame but vectors are moving. 
In this perspective, out convention is logical.

So I agree this needs to be better explained, but as you guessed we will not 
change the convention. I have added a more thorough explanation in the 
constructor involved. You can find it in the subversion repository. Could you 
check it is understandable and explains what happens ?

Fixed in subversion repository as of r932871.
Thanks for reporting this.

> please clarify quaternion conventions in 
> org.apache.commons.math.geometry.Rotation
> ----------------------------------------------------------------------------------
>
>                 Key: MATH-363
>                 URL: https://issues.apache.org/jira/browse/MATH-363
>             Project: Commons Math
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: all
>            Reporter: Albert Huang
>            Priority: Minor
>
> Please clarify which quaternion convention is used in the Rotation 
> documentation, and provide constructor methods to use alternate quaternion 
> conventions.
> For example, the computer graphics community has standardized on representing 
> a rotation of angle theta about the unit vector (i, j, k)  with the quaternion
> { cos(theta/2), i * sin(theta/2), j * sin(theta/2), k * sin(theta/2) }
> e.g., any introductory computer graphics textbook referring to quaternions 
> will describe them in this convention.  This is also the convention appearing 
> on Mathworld, Wikipedia, etc. 
> The convention in org.apache.commons.math.geometry.Rotation instead appears 
> to be
> { cos(-theta/2),  i * sin(-theta/2),  j * sin(-theta/2), k * sin(-theta/2) }
> Since I'm not likely to convince you to switch conventions, please at least 
> document the convention and provide ways to convert from the alternate (this 
> should be trivial?)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to