angular momentum and velocity representations

Started by
2 comments, last by Zakwayda 17 years, 11 months ago
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?
Two things are infinite: the universe and human stupidity; and Im not sure about the universe. -- Albert Einstein
Advertisement
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.
enum Bool { True, False, FileNotFound };
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.
Two things are infinite: the universe and human stupidity; and Im not sure about the universe. -- Albert Einstein
Quote:Original post by coder0xff
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.
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 :-)

This topic is closed to new replies.

Advertisement