注册回调函数用于在渲染帧之后执行动画。
def register_animation_callback(self, callback: Callable[[Visualizer], None]) -> None:
callback:回调函数,类型为Callable[[Visualizer], None],该回调函数接受一个Visualizer对象作为参数,用于执行动画。无返回值。
import open3d as o3d
def spin_animation(vis):
ctr = vis.get_view_control()
ctr.rotate(1.0, 0.0)
color = [0.5, 0.5, 0.5]
mesh_box = o3d.geometry.TriangleMesh.create_box(width=1.0, height=1.0, depth=1.0)
mesh_box.paint_uniform_color(color)
vis = o3d.visualization.VisualizerWithEditing()
vis.create_window()
vis.add_geometry(mesh_box)
vis.register_animation_callback(spin_animation)
while not vis.was_terminated():
vis.poll_events()
vis.update_renderer()
上述代码使用了register_animation_callback注册了一个动画回调函数spin_animation,该函数将会每一帧旋转相机视角1度。在主循环中,调用了poll_events和update_renderer函数以保证窗口事件响应和渲染刷新。
无异常。
open3d.visualization.Visualizer:可视化对象类。open3d.visualization.VisualizerWithEditing:可视化和编辑对象类。