No, it's too troublesome. Use text to record it for future query.
The coordinate system M1 is rotated by E, while m2 is rotated by M1, and so on M3.
Then, the coordinate m in E is rotated by the coordinate system. The final coordinate is m1m2m3... M4 * m, and m is the vector.
M1, M2, M3, and M4 are rotating matrices.
Ex = om
M1x = om1
M1 is the coordinate of E after rotation
M1m2 just converted the vector represented by m2 to the coordinates in M2.
M1m2 is the rotation of the coordinate system. Each rotation is based on the previous rotation.
The second type of rotation: that is, the rotation of the trackball. The first rotation is based on the base coordinate E. If M1, M2, M3 are continuously rotated, then, the coordinate of the rotated point is m3m2m1, which is the opposite of the order in which the previous condition is multiplied.
The third case: matrix m, multiplied by the vector X, or MX. What does it mean when it reaches low? It represents a rotation, rotating X to an angle (model transformation), or representing a coordinate system transformation, and converting X to another coordinate system (view transformation)
Coordinate System Transformation: (-center) * rotation. Inverse () * (-distance) indicates first moving the coordinate point to-center, then rotating the coordinate system, and then following the positive direction of Z backward
/// Rotate in the direction, multiplied by rotation