Добавить новую точку в PolyData в PyVista / Лучший способ преобразовать XYZ в TIN

Можно ли добавить новую точку (X, Y, Z) в массив точек PolyData, не создавая новые PolyData? Я хочу сделать новую поверхность Triangulate Surface (TIN) очень быстрой, но создание новой PolyData из массива NumPy занимает около 1 секунды. Между тем, например, функция extrude (которая создает новые узлы) занимает около 0,002 секунды (технически я хочу добавить 1 новый узел с известными координатами).

После обновления PolyData я использую функцию delaunay_2d (которая также занимает около 0,002 с) и строю график результатов (поверхность TIN).

Или, может быть, кто-то знает другой способ обновить и обработать данные XYZ в TIN и визуализировать их примерно 10 раз в секунду в Python 3? PyVista кажется действительно крутым, но я не могу сделать такую ​​тривиальную вещь: (

1 ответ

Решение

Можно изменить точки на сетке с помощью:

>>> import numpy as np
>>> import pyvista as pv
>>> mesh = pv.Sphere()
>>> print(mesh.n_points)
>>> mesh.points = np.vstack((mesh.points, [0, 0, 0]))
>>> print(mesh.n_points)
842
843
Другие вопросы по тегам