open3d.geometry.MeshBase中的函数get_rotation_matrix_from_zyx可以获得zyx旋转顺序下的旋转矩阵。
get_rotation_matrix_from_zyx(z_rotation=0.0, y_rotation=0.0, x_rotation=0.0, degrees=False)
import open3d as o3d
import numpy as np
mesh = o3d.geometry.TriangleMesh.create_sphere(radius=1.0)
# 绕z轴旋转45度,绕y轴旋转30度,绕x轴旋转60度
R = mesh.get_rotation_matrix_from_zyx(np.radians(45), np.radians(30), np.radians(60))
print(R)
输出结果为:
array([[ 0.4330127 , 0.25 , 0.8660254 ],
[-0.25 , 0.96650635, -0.0580127 ],
[-0.8660254 , -0.0580127 , 0.49721494]])
输入的旋转角度可以是角度制或者弧度制,但是必须是实数类型的数字。在使用中角度制和弧度制需特别注意。其次,旋转顺序是zyx,即先绕z轴旋转、再绕y轴旋转、最后绕x轴旋转。最后,输出的旋转矩阵类型是numpy.ndarray。