需求,需要显示点云,同时点云也会发生运动,需要对点云的数据实时的显示。
import pyvista as pv
from pyvistaqt import BackgroundPlotter
import numpy as np
# 创建一个初始的点云数据
num_points = 100
points = np.random.rand(num_points, 3)
# 将 numpy 数组转换为 PyVista 的 PolyData
point_cloud = pv.PolyData(points)
# 更新点云的回调函数
def update_cloud():
global points
points += np.random.randn(num_points, 3) * 0.02
point_cloud.points = points
plotter.update()
# 使用 BackgroundPlotter
plotter = BackgroundPlotter()
plotter.add_mesh(point_cloud, color='red', point_size=10)
# 添加定时回调函数,每 100 毫秒调用一次
timer_id = plotter.add_callback(update_cloud, 100)
# 开始事件循环
plotter.app.exec_()