注册回调函数用于在渲染帧之后执行动画。
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
:可视化和编辑对象类。