在PyVista中向PolyData添加新点/处理XYZ至TIN的最佳方法

问题描述

是否可以在不创建新的polyData的情况下向polyData点数组添加新点(X,Y,Z)?我想快速制作新的Triangulate Surface(TIN),但是从NumPy数组创建新的polyData大约需要1秒。同时,例如函数拉伸(创建新节点)大约需要0.002s(从技术上讲,我想添加1个具有已知坐标的新节点)。

更新polyData之后,我使用“ delaunay_2d”函数(大约需要0.002s)并绘制结果(TIN表面)。

或者也许有人知道用其他方式将XYZ数据更新和处理为TIN,并在Python 3中以每秒约10次的速度对其进行可视化? PyVista看起来真的非常酷,但是我无法做出如此琐碎的事情:(

解决方法

可以使用以下方法修改网格上的点:

>>> import numpy as np
>>> import pyvista as pv
>>> mesh = pv.Sphere()
>>> print(mesh.n_points)
>>> mesh.points = np.vstack((mesh.points,[0,0]))
>>> print(mesh.n_points)
842
843