# angular momentum and velocity representations

This topic is 4639 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Starting off, torque vectors represent the axis of which rotational force is applied. This vector cross multiplied by any body point vector is the linear force at that point. The magnitude of the new vector (equal to the magnitude of torque vector * magnitude of body point) is the same as the arc length of the path that would be "traveled" by the body point (though since this is just force, it is not really travelling :-)... so arc length divided by radius of arc(magnitude of body vector) = change in radians (magnitude of torque vector)... Restated: A vector, calculated from application of torque, has a magnitude equal to the radians of rotation. so proceeding up the chain of integration... acceleration and/or momentum also have the same property that the rotation vectors magnitude is equal to the angle, correct? For that matter, why not represent orientation itself with a vector where |v| = theta? There would not need to be any changes to matrices or quaternions... For each frame, compute vector magnitude (necessary for normalizing vectors to change to matrix or quaternion anyway) and substitute theta with it, then normalize the vector using already computed magnitude to rotate points: a' = xcos(theta)+a(a.x)(1 - cos(theta) + (a x n)sin(theta) see: http://mathworld.wolfram.com/RotationFormula.html where a=vector to point to rotate, n=rotation vector Is this convention? If not, why?

##### Share on other sites
sin() and cos() are really slow operations.

If you look at how a quaternion is represented, it's very similar to the representation of f(length(axis)) == rotation, where the normalized length of 1.0 means 180 degrees (full pi) rotation. Except the fourth value is stored explicitly, which makes it faster.

##### Share on other sites
At some point you have to change your torque vector into a quaternion then, which calls for a sin, cos, sqrt anyway. Of course that calculation is only done when torque is applied.

##### Share on other sites
Quote:
 Original post by coder0xffAt some point you have to change your torque vector into a quaternion then, which calls for a sin, cos, sqrt anyway. Of course that calculation is only done when torque is applied.
If I'm not mistaken, you can apply forces and integrate angular effects without use of trig functions or square roots (see Baraff). I'm not a physics pro so I could be wrong about this, but I don't remember using any such functions when implementing the methods described in that paper. Rather, the orientation matrix is updated via its derivative, constructed from the cross products of the angular velocity vector and the local basis vectors (via a skew-symmetric matrix). An equivalent formulation for quaternions can also be derived.

(Again, I could totally be wrong about this, but if so there are enough physics experts here that I'm sure the truth will come out :-)

• ### What is your GameDev Story?

In 2019 we are celebrating 20 years of GameDev.net! Share your GameDev Story with us.

• 17
• 14
• 10
• 9
• 11
• ### Forum Statistics

• Total Topics
634094
• Total Posts
3015498
×