B3DRotation negated problem

Andreas Raab andreas.raab at gmx.de
Wed Feb 8 01:52:26 UTC 2006


Hi Nicolas,

Good catch. I think the operation should be called #reversed (e.g., 
reversing the angle/axis of operation).

Cheers,
   - Andreas

nicolas cellier wrote:
> I was looking for Quaternion in squeak and found B3DRotation. fine !
> 
> But the B3DRotation>>negated did hurt me.
> This message is more than questionnable: it is mathematically incorrect.
> 
> Of course, if you think of the rotation vector angleInRadians*axis, then the 
> opposite rotation vector is either (-angleInRadians)*axis or 
> angleInRadians*(-axis), so far so good.
> 
> What if you multiply your rotations:
> 
> q negated * q, then you obtain the unitary quaternion (1 + 0 i + 0 j + 0 k).
> 
> If you multiply any B3DRotation with this unit quaternion, you get your 
> original B3DRotation. It is neutral to * operation.
> 
> This is definition of the reciprocal, not the negated.
> 
> if you could add q to q "negated", you would not get zero (+ can be trivially 
> defined in quaternions as in complex). You cannot do that operation 
> internally with unit quaternion, but you can with general quaternions.
> True quaternion negated is (-a -b i - c j - d k).
> 
> There you see how bad it is.
> 
> In term of rotation matrix, this operation is the transposed, in term of 
> Quaternion this is the conjugated (more exaclty the conjugated negated in 
> your implementation), and in term of unit qaternion it is the reciprocal.
> 
> Yes but the opposite of my rotation vector ?
> Well... try to sum two rotation vectors like 90° around [0 0 1] and then 90° 
> around [1 0 0], and tell me what do you get ? certainly not the composition 
> of the two rotations... The sum of rotation vectors have no meaning in term 
> of rotation except if same axis.
> 
> So forget about the negated, call it either reciprocal or conjugated or 
> transposed or schtroumph but please not negated.
> 
> Who will change that ?
> 
> 
> 




More information about the Squeak-dev mailing list