使用不同的符号显示vtkPoints的子集

0 投票
1 回答
516 浏览
提问于 2025-04-17 03:10

我想用VTK把一些时间序列数据以3D的方式展示出来,使用颜色来表示不同的数值。我有一个包含3D位置的数组,这些位置是两种不同物体的,比如圆锥和球体,这些位置是交错在一起的。同时,我还有一个二维数组,里面是这些物体的时间序列数据。位置数组中的第n个位置对应时间序列数组中的第n行(这些都是numpy数组)。

现在我想用python-vtk做一个动画展示,让圆锥和球体的颜色根据时间序列数组中的数据变化。目前我已经通过把每个数组分成两个部分来实现了,一个部分是圆锥,一个部分是球体。但理想情况下,我希望能直接把位置数组中的圆锥部分通过一个圆锥图标处理,球体部分通过一个球体图标处理,然后直接设置所有位置的时间序列值。请问有没有办法做到这一点?

VTK动画的数据流

1 个回答

0

我解决这个问题的方法是存储两种对象的索引(也就是 cone_indices 和 sphere_indices)。我还创建了两个 vtkPoints 对象,一个用来存放圆锥的位置,另一个用来存放球体的位置。这些对象用来生成各自类的 vtkPolyData。在定时器类的更新方法中,我使用这些索引数组来获取每种类型在特定时间点的数据,并把标量值分配给点数据。

conePoints.GetPointData().SetScalars(coneData)
spherePoints.GetPointData().SetScalars(sphereData)

使用索引数组进行 numpy 的数组查找速度很快。

撰写回答