首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PyVista:使用附加点更新PolyData

PyVista:使用附加点更新PolyData
EN

Stack Overflow用户
提问于 2022-04-18 07:42:20
回答 1查看 423关注 0票数 1

我想在绘图仪中向pyvista.PolyData添加点(和单元格)。我尝试使用Plotter.update_coordinates函数,但是这只对大小相同的点数据有用:

代码语言:javascript
运行
复制
import numpy as np
import pyvista as pv
import pyvistaqt

points = np.array([[1, 0, 0],
                   [2, 0, 0],
                   [3, 0, 0]])


point_cloud = pv.PolyData(points)

plotter = pyvistaqt.BackgroundPlotter()
a = plotter.add_points(point_cloud)
plotter.show()

new_points = np.array([[1, 0, 0],
                       [2, 0, 0],
                       [5, 0, 0], 
                       [7, 0, 0]])  # Not updated in the plotter

plotter.update_coordinates(new_points, point_cloud, render=True)

似乎这些点是更新的,但不是单元格。因此,在绘图仪中只有相应的单元格被修改。

更新PolyData的最佳实践是什么,其中包括新的(额外的)点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-18 10:51:17

你说过

我想在绘图仪的pyvista.PolyData中添加点(和单元格)

但对我来说还不清楚。您有两个选项:要么向PolyData添加进一步的点,然后绘制一个网格,要么将两个不同的PolyData对象添加到同一个绘图仪中。

以下是两种选择:

代码语言:javascript
运行
复制
import pyvista as pv

sphere_a = pv.Sphere()
sphere_b = sphere_a.translate((1, 0, 0), inplace=False)

# option 1: merge the PolyData
spheres = sphere_a + sphere_b
# alternatively: sphere_a += sphere_b for an in-place operation
spheres.plot()  # plot the two spheres in one PolyData
# we could also use a Plotter for this

# option 2: add both PolyData to the same plotter
plotter = pv.Plotter()
plotter.add_mesh(sphere_a)  # or add_points() for a point cloud
plotter.add_mesh(sphere_b)
plotter.show()  # show the two spheres from two PolyData

另外,如果您只有点云(即没有单元格),您应该考虑使用the new PointSet class。这需要PyVista 0.34.0和VTK9.1.0或更高版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71908957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档