我在我的 Pyvista 图中添加了一些球体,并尝试使它们可以选择:
for index, center in enumerate(centers):
sphere = pv.Sphere(radius=radius, center=center)
plotter.add_mesh(sphere, color=thisColor, pickable=True)
plotter.enable_cell_picking(mesh=sphere, callback=makePickCallback(index), show=True, show_message=True, through=False)
我假设每个球体都会获得一个单独的回调,使用以下函数构造:
def makePickCallback(index):
indexCopy = deepcopy(index)
return lambda p: print(str(indexCopy) + " " + str(p))
但似乎所有球体以及图中的所有其他元素都只是调用了在for
循环的最后一次迭代中构造的回调。
现在我想知道 -如何为场景中的每个网格安装不同的拾取回调?或者我怎样才能确定点击了哪个网格?