Rotation Family in Transformation 几何变换中的各种旋转
1 Rotate with aligned axis
-
在3D坐标系下的旋转,可以是以一种分别沿着x-axis, y-axis, z-axis旋转 α \alpha α, β \beta β, γ \gamma γ角度得到各自旋转,然后进行矩阵组合:
- python code
def rotate_with_aligned_axis(alpha, beta, gamma): alpha_rad = np.deg2rad(alpha) beta_rad = np.deg2rad(beta) gamma_rad = np.deg2rad(gamma) R_x = np.eye(4, dtype=np.float32) R_y = np.eye(4, dtype=np.float32) R_z = np.eye(4, dtype=np.float32) R_x[1, 1] = np.cos(alpha_rad); R_x[1, 2] = - np.sin(alpha_rad) R_x[2, 1] = np.sin(alpha_rad); R_x[2, 2] = np.cos(alpha_rad) R_y[0, 0] = np.cos(beta_rad); R_y[0, 2] = np.sin(beta_rad) R_y[2, 0] = - np.sin(beta_rad); R_y[2, 2] = np.cos(beta_rad) R_z[0, 0] = np.cos(gamma_rad); R_z[0, 2] = - np.sin(gamma_rad) R_z[1, 0] = np.sin(gamma_rad); R_z[1, 1] = np.cos(gamma_rad) return np.matmul(R_x, np.matmul(R_y, R_z))