It is used as a 3d rotation method that can improve the disadvantages of Euler Angle. 3D rotation is more flexible than Euler Angle.
- : the axis of rotation, orange line
- : a point to rotate
- 𝜃 : an angle to rotate
- : the final point of rotation
- : a point of the world space
- : the center of a rotating plane
1. Obtain
- Point : the position of the point in 3D space.
- Point : the origin in homogeneous coordinates.
-
* Tip
A point in Homogeneous coordinates can be written as . The last element being 1 signifies that it is a point located in 3D space.
To distinguish between points and vectors, homogeneous coordinates for vectors typically have the last element as 0. This is because vectors represent directions, not positions, and a direction doesn't need a "location" in projective geometry.
* Tip
- : vector
- : unit vector
- : It computes the amount of that lies along the direction of . It results in a scalar value.
- Multiplying by : It converts the scalar back into a vector. It "scales" by the projection of onto , giving a vector with the same direction as .
2. Obtain
=
* Tip
: The cross product produces a vector that is perpendicular to both and .
- 𝜃 : It determines how much of the vector aligns with (horizontal component) and how much is perpendicular to it (vertical component, aligned with .
- : It gives you the portion of the original vector that lies along the perpendicular direction defined by .
x has been eliminated because two vectors are parallel.
∴
3. Obtain
= +
Substitute ,
Conclusion
- : input vector
- , 𝜃 : used to rotate
Depend on , 𝜃, changes to .
Axis-Angle Rotation(Rodrigues Rotation) in Matrix
* Tip
When we multiply this projection matrix by , the resulting vector is the projection of onto .
So, the matrix form
does the same projection operation as
.
can be expressed like this.
Cross product in Matrix
It is computed using the following determinant of a 3x3 matrix:
Where are the unit vectors along the 𝑥-axes,𝑦-axes, and 𝑧-axes.
The determinant expands as:
Calculating the Determinants:
∴
Full vector:
Substitute K to
Then,
Because of this satisfaction,
It can be
And
∴
Then, using this
and
can be changed to