This section briefly introduces the use of matrices to describe rotations. In a 2D plane, complex numbers are undoubtedly the best tool for describing rotations; however, when extending to 3D space, "quaternions" are required. To prove conclusions related to quaternions, we need a matrix description of 3D rotations. The most general rotation is a rotation by an angle \theta around a certain axis. Thus, we need three parameters to describe it: at least two parameters to determine an axis and one parameter for the angle. Therefore, if we want to use "numbers" to describe scaling and rotation in 3D space, "trinions" are clearly insufficient; at least quaternions are needed to achieve this goal. This also reflects the non-existence of trinions from another perspective.
Matrix Method
First, we recognize that if the rotation axis is one of the coordinate axes, the rotation matrix will be the simplest. For example, the coordinates of a vector \boldsymbol{x}=(x_0,y_0,z_0)^{T} after rotating counterclockwise by an angle \theta around the z-axis can be described as: \boldsymbol{R}_{\theta}\boldsymbol{x} where \label{xuanzhuanjuzhen} \boldsymbol{R}_{\theta}=\begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} If the rotation axis is not a coordinate axis but is determined by a unit column vector \boldsymbol{u}=(x_1,y_1,z_1), then a plane perpendicular to \boldsymbol{u} is simultaneously determined. On this plane, find two orthogonal unit column vectors \boldsymbol{e}_1, \boldsymbol{e}_2. Using \boldsymbol{e}_1, \boldsymbol{e}_2, \boldsymbol{u}, we can establish a new Cartesian coordinate system (right-handed). Suppose the coordinates of the original vector \boldsymbol{x} in this coordinate system are \boldsymbol{\xi}=(\xi_1,\xi_2,\xi_3)^T, then: \left[ \boldsymbol{e}_1, \boldsymbol{e}_2, \boldsymbol{u} \right] \boldsymbol{\xi}=\boldsymbol{x} Describing the rotation in the new coordinate system is convenient; it is simply the matrix [xuanzhuanjuzhen]. After rotating counterclockwise by angle \theta around the \boldsymbol{u} axis, the coordinates are: \boldsymbol{R}_{\theta} \boldsymbol{\xi}=\boldsymbol{R}_{\theta}\left[ \boldsymbol{e}_1, \boldsymbol{e}_2, \boldsymbol{u} \right]^{-1}\boldsymbol{x} The above are the coordinates in the \boldsymbol{e}_1, \boldsymbol{e}_2, \boldsymbol{u} system. Converting back to our original Cartesian coordinate system, we get: \label{xuanzhuan} \left[ \boldsymbol{e}_1, \boldsymbol{e}_2, \boldsymbol{u} \right]\boldsymbol{R}_{\theta}\left[ \boldsymbol{e}_1, \boldsymbol{e}_2, \boldsymbol{u} \right]^{-1}\boldsymbol{x} Equation [xuanzhuan] represents the coordinates after rotation. It describes the most general rotation in 3D space. Note that the matrix \left[ \boldsymbol{e}_1, \boldsymbol{e}_2, \boldsymbol{u} \right] is an orthogonal matrix, so its inverse is \left[ \boldsymbol{e}_1, \boldsymbol{e}_2, \boldsymbol{u} \right]^{-1}=\begin{bmatrix} \boldsymbol{e}_1^T \\ \boldsymbol{e}_2^T \\ \boldsymbol{u}^{T} \end{bmatrix}. Therefore, the rotated coordinates are: \label{xuanzhuanzuobiao3} \left[ \boldsymbol{e}_1, \boldsymbol{e}_2, \boldsymbol{u} \right]\boldsymbol{R}_{\theta}\begin{bmatrix} \boldsymbol{e}_1^T \\ \boldsymbol{e}_2^T \\ \boldsymbol{u}^T \end{bmatrix}\boldsymbol{x} = \left[ \boldsymbol{e}_1, \boldsymbol{e}_2, \boldsymbol{u} \right]\boldsymbol{R}_{\theta}\begin{bmatrix} \boldsymbol{e}_1 \cdot \boldsymbol{x} \\ \boldsymbol{e}_2 \cdot \boldsymbol{x} \\ \boldsymbol{u} \cdot \boldsymbol{x} \end{bmatrix}
The remaining issue is the determination of \boldsymbol{e}_1, \boldsymbol{e}_2. If two vectors satisfying the conditions cannot be found quickly, the cross product of vectors can be used: \label{chaji} \boldsymbol{e}_1=\frac{\boldsymbol{u}\times\boldsymbol{x}}{|\boldsymbol{u}\times\boldsymbol{x}|}, \quad \boldsymbol{e}_2=\frac{\boldsymbol{u}\times(\boldsymbol{u}\times\boldsymbol{x})}{|\boldsymbol{u}\times(\boldsymbol{u}\times\boldsymbol{x})|}=\frac{(\boldsymbol{u}\cdot\boldsymbol{x})\boldsymbol{u}- \boldsymbol{x}}{|\boldsymbol{u}\times\boldsymbol{x}|}
The advantage of the cross product is obvious. Substituting [chaji] into [xuanzhuanzuobiao3], we get: \label{juzhenxuanzhuanhuajian} \begin{aligned} &\begin{bmatrix} \frac{\boldsymbol{u}\times\boldsymbol{x}}{|\boldsymbol{u}\times\boldsymbol{x}|} & \frac{(\boldsymbol{u}\cdot\boldsymbol{x})\boldsymbol{u}- \boldsymbol{x}}{|\boldsymbol{u}\times\boldsymbol{x}|} & \boldsymbol{u} \end{bmatrix}\boldsymbol{R}_{\theta}\begin{bmatrix} 0 \\ \frac{(\boldsymbol{u} \cdot \boldsymbol{x})^2-\boldsymbol{x}^2}{|\boldsymbol{u}\times\boldsymbol{x}|} \\ \boldsymbol{u} \cdot \boldsymbol{x} \end{bmatrix} \\ =&\begin{bmatrix} \frac{\boldsymbol{u}\times\boldsymbol{x}}{|\boldsymbol{u}\times\boldsymbol{x}|} & \frac{(\boldsymbol{u}\cdot\boldsymbol{x})\boldsymbol{u}- \boldsymbol{x}}{|\boldsymbol{u}\times\boldsymbol{x}|} & \boldsymbol{u} \end{bmatrix}\begin{bmatrix} |\boldsymbol{u}\times \boldsymbol{x}| \sin\theta \\ -|\boldsymbol{u}\times \boldsymbol{x}|\cos\theta \\ \boldsymbol{u} \cdot \boldsymbol{x} \end{bmatrix} \\ =&(\boldsymbol{u}\times\boldsymbol{x})\sin\theta - [(\boldsymbol{u}\cdot\boldsymbol{x})\boldsymbol{u}- \boldsymbol{x}]\cos\theta + (\boldsymbol{u}\cdot\boldsymbol{x})\boldsymbol{u} \\ =&(\boldsymbol{u}\times\boldsymbol{x})\sin\theta + [(\boldsymbol{u}\times\boldsymbol{x})\times\boldsymbol{u}]\cos\theta + (\boldsymbol{u}\cdot\boldsymbol{x})\boldsymbol{u} \end{aligned} This is known as the Rodrigues’ rotation formula. It is the simplest form for describing 3D rotation using vectors. The final form is written this way because it has clear geometric meaning. In fact, one can derive the last expression of [juzhenxuanzhuanhuajian] using only geometric methods and vector cross products, without matrix analysis. Additionally, if \boldsymbol{x} \perp \boldsymbol{u} (which is not a harsh condition in practical applications), the coordinate rotation formula becomes quite simple: (\boldsymbol{u}\times\boldsymbol{x})\sin\theta + \boldsymbol{x}\cos\theta
Geometric Method
Given a unit vector \boldsymbol{u} as the rotation axis, find the coordinates of vector \boldsymbol{x} after rotating counterclockwise around axis \boldsymbol{u} by angle \theta. We take the cross product of \boldsymbol{u} and \boldsymbol{x} to get \boldsymbol{e}_1=\boldsymbol{u}\times\boldsymbol{x}, a vector perpendicular to both \boldsymbol{u} and \boldsymbol{x}. Then we take the cross product \boldsymbol{e}_2=(\boldsymbol{u}\times\boldsymbol{x})\times\boldsymbol{u} to get a vector coplanar with \boldsymbol{u} and \boldsymbol{x}, with the same length as \boldsymbol{u}\times\boldsymbol{x}, and perpendicular to both \boldsymbol{u} and \boldsymbol{u}\times\boldsymbol{x}.
Note that: (\boldsymbol{u}\times\boldsymbol{x})\times\boldsymbol{u}=\boldsymbol{x}-(\boldsymbol{u}\cdot\boldsymbol{x})\boldsymbol{u} That is to say, the projection of vector \boldsymbol{x} onto the plane of \boldsymbol{e}_1, \boldsymbol{e}_2 is \boldsymbol{e}_2, while the projection on the \boldsymbol{u} axis is (\boldsymbol{u}\cdot\boldsymbol{x})\boldsymbol{u}. Note that during rotation, only the component in the \boldsymbol{e}_1, \boldsymbol{e}_2 plane (the rotation plane) changes. Describing the transformation in the rotation plane is simple; it is just: \boldsymbol{e}_2 \cos\theta + \boldsymbol{e}_1 \sin\theta
Adding the component along the \boldsymbol{u} axis, (\boldsymbol{u}\cdot\boldsymbol{x})\boldsymbol{u}, gives the rotated coordinates: \left(\boldsymbol{u}\times\boldsymbol{x} \right)\sin\theta+\left[(\boldsymbol{u}\times\boldsymbol{x})\times\boldsymbol{u}\right]\cos\theta+(\boldsymbol{u}\cdot\boldsymbol{x})\boldsymbol{u} Thus, we have re-derived [juzhenxuanzhuanhuajian].
Please include the address of this article when reprinting: https://kexue.fm/archives/2224
For more detailed reprinting matters, please refer to: Scientific Space FAQ