open3d.geometry.AxisAlignedBoundingBox
类的方法之一。根据ZYX旋转顺序(先绕Z轴旋转,再绕Y轴旋转,最后绕X轴旋转)获取旋转矩阵。
get_rotation_matrix_from_zyx(rotation: Union[List[float], np.ndarray]) -> np.ndarray
List[float]
或numpy.ndarray
类型,包含三个浮点型数值,分别代表绕Z轴旋转角度、绕Y轴旋转角度和绕X轴旋转角度。单位为弧度。numpy.ndarray
类型,3x3的旋转矩阵。
import numpy as np
from open3d.geometry import AxisAlignedBoundingBox
# 创建均已对齐的包围盒
aabb = AxisAlignedBoundingBox([0, 0, 0], [1, 2, 3])
# 获取绕Z轴旋转45度、绕Y轴旋转30度、绕X轴旋转60度的旋转矩阵
rotation = [np.deg2rad(45), np.deg2rad(30), np.deg2rad(60)]
rot_mat = aabb.get_rotation_matrix_from_zyx(rotation)
# 输出结果
print(rot_mat)
结果:
[[ 0.11721689 -0.34306964 0.93239222]
[ 0.9079252 0.36532621 -0.20624923]
[-0.40214518 0.86474643 0.29975406]]
TypeError
: 参数rotation
不是List[float]
或numpy.ndarray
类型。ValueError
: 参数rotation
的长度不为3。