Given a vector $s$, and a 3D rotation represented by $(u,\theta)$, the formula gives the transformed vector.

OtB_BlueBerry

In lecture it was mentioned that every 3D rotation has an axis. One explanation is: since the dimensionality 3 is odd, the characteristic polynomial of the rotation matrix must have at least one real root. Thus there is at least one real eigenvalue (nonzero, since 3D rotations have determinant 1). The rotational axis is then given by the corresponding eigenvector(space).

What if there are other real eigenvalues though?

wxl

(s.u)u and s - (s.u)u make perfect sense. I'm still a bit confused about why there is the (u x s) term.
So the first time doesn't rotate since it's the component in the direction of the vector we're rotating around. So we just want to rotate the perpendicular component. Where does the (u x s) come in?

jmccann

Notice that (u x s) is the same as (u x (s - u(u . s))) -- it's constructing a vector perpendicular to both u and the current direction of s, with the same length as (s - u(u . s)).

OtB_BlueBerry

Answering my own question:

(1) Turns out that all (complex) eigenvalues of a unitary matrix must have modulus 1.

(2) For every proper 3D rotation matrix, the product of its eigenvalues is 1, and 1 can be shown to always be an eigenvalue.

Therefore the eigenvalues of every proper 3D rotation matrix must be 1, exp(it), exp(-it) for some t in [0, pi].

qhy

u is a unit vector right?

xudongw

My intuition is that u can be any length, it's just a vector we can rotate around.

Here is a video I found extremely helpful: https://www.youtube.com/watch?v=dttFiVn0rvc

jmccann

@qhy yes, u is a unit vector. If it isn't unit length, then rotate() will also apply a (non-uniform) scaling -- to see why, try working through rotate((a*u,theta),s) for some scalar a.

Ken

Is the rotation clockwise or anticlockwise? Also, for a rotation around a vector, do we see it along the vector or opposing the vector when determining if it's clockwise or anticlockwise?

ziqichen

@Ken My opinion is if we view the rotation axis as z-axis, the rotation will be counterclockwise on x-y plane. If we further treat (s-(s . u)u) to be along x-axis and (u x s) to be along y-axis, the projection of the rotation onto x-y plane will look like slide 6.

what does the value 's' mean?

Given a vector $s$, and a 3D rotation represented by $(u,\theta)$, the formula gives the transformed vector.

In lecture it was mentioned that every 3D rotation has an axis. One explanation is: since the dimensionality 3 is odd, the characteristic polynomial of the rotation matrix must have at least one real root. Thus there is at least one real eigenvalue (nonzero, since 3D rotations have determinant 1). The rotational axis is then given by the corresponding eigenvector(space).

What if there are other real eigenvalues though?

(s.u)u and s - (s.u)u make perfect sense. I'm still a bit confused about why there is the (u x s) term. So the first time doesn't rotate since it's the component in the direction of the vector we're rotating around. So we just want to rotate the perpendicular component. Where does the (u x s) come in?

Notice that (u x s) is the same as (u x (s - u(u . s))) -- it's constructing a vector perpendicular to both u and the current direction of s, with the same length as (s - u(u . s)).

Answering my own question:

(1) Turns out that all (complex) eigenvalues of a unitary matrix must have modulus 1.

(2) For every proper 3D rotation matrix, the product of its eigenvalues is 1, and 1 can be shown to always be an eigenvalue.

Therefore the eigenvalues of every proper 3D rotation matrix must be 1, exp(it), exp(-it) for some t in [0, pi].

u is a unit vector right?

My intuition is that u can be any length, it's just a vector we can rotate around.

Here is a video I found extremely helpful: https://www.youtube.com/watch?v=dttFiVn0rvc

@qhy yes, u is a unit vector. If it isn't unit length, then rotate() will also apply a (non-uniform) scaling -- to see why, try working through rotate((a*u,theta),s) for some scalar a.

Is the rotation clockwise or anticlockwise? Also, for a rotation around a vector, do we see it along the vector or opposing the vector when determining if it's clockwise or anticlockwise?

@Ken My opinion is if we view the rotation axis as z-axis, the rotation will be counterclockwise on x-y plane. If we further treat (s-(s . u)u) to be along x-axis and (u x s) to be along y-axis, the projection of the rotation onto x-y plane will look like slide 6.