get_rotation_matrix_from_zxy
是Open3D库中LineSet
对象的方法之一。该方法可以根据给定的旋转顺序和角度计算3D空间中的旋转矩阵。
get_rotation_matrix_from_zxy(angles)
旋转矩阵,形状为(3, 3)的numpy数组。
import open3d as o3d
import numpy as np
angles = np.array([0.1, 0.2, 0.3])
rotation_matrix = o3d.geometry.LineSet.get_rotation_matrix_from_zxy(angles)
在三维空间中,旋转矩阵表示绕某个轴旋转某个角度的操作。常见的旋转顺序包括x-y-z、x-z-y、y-x-z、等等,一共有6种不同的顺序。get_rotation_matrix_from_zxy
采用的是z-x'-y''顺序,即先绕z轴旋转angle[0]角度,再绕旋转后的x轴旋转angle[1]角度,最后绕旋转后的y轴旋转angle[2]角度。
旋转公式如下:
$$ R = R_{z}(angle[0])R_{x'}(angle[1])R_{y''}(angle[2]) $$
其中,$R_{z}(angle[0])$表示绕z轴旋转,$R_{x'}(angle[1])$表示绕x轴旋转,$R_{y''}(angle[2])$表示绕y轴旋转。
可以发现,get_rotation_matrix_from_zxy
方法中的参数angles和上述公式中的angle数组是一致的。方法返回的是一个3x3的旋转矩阵。该旋转矩阵对应的旋转操作可以将原始坐标系中的点旋转到新的坐标系中。
[1] Open3D. (2021). Open3D Documentation. [online] Available at: http://www.open3d.org/docs/latest/index.html [Accessed 15 Nov. 2021].