在Open3D中,open3d.geometry.AxisAlignedBoundingBox
是一个内部轴对齐的边界框类,用于表示三维场景中的物体位置和尺寸。这个类的rotate()
函数可以用于绕指定轴旋转边界框。
def rotate(self, R: numpy.ndarray)
R
: numpy.ndarray,大小为[3, 3]的旋转矩阵,表示旋转操作rotate()
函数没有返回值,会直接修改open3d.geometry.AxisAlignedBoundingBox
的属性值。
import open3d
import numpy as np
aabb = open3d.geometry.AxisAlignedBoundingBox(np.asarray([0, 0, 0]), np.asarray([1, 1, 1]))
# 将边界框绕X轴旋转90度
R = np.asarray([
[1, 0, 0],
[0, 0, 1],
[0, -1, 0]
])
aabb.rotate(R)
viewer = open3d.visualization.Visualizer()
viewer.create_window()
viewer.add_geometry(aabb)
viewer.run()
以下图片显示了将一个内部轴对齐的立方体绕X轴旋转90度后的效果。初始的立方体为红色边界框,旋转后的立方体为灰色边界框。
rotate()
函数会修改原始的边界框对象,因此在使用之前应确保有正确的备份。