[英]How to get points from polydata instance?
像下面的代碼,
當我們創建 vtkPolyData()(:here, polydata) 的實例時,
我們使用 SetPoints(points) 來分配點。
然后,當我這次想要獲得積分(:vtkPoints()的一個實例)時,
我應該為 polydata(:an instance of vtkPolyData()) 做什么?
def points2actor(xyz, apoint_size):
import vtk
points = vtk.vtkPoints()
# Create the topology of the point (a vertex)
vertices = vtk.vtkCellArray()
# Add points
for i in range(0, len(xyz)):
p = xyz.loc[i].values.tolist()
point_id = points.InsertNextPoint(p)
vertices.InsertNextCell(1)
vertices.InsertCellPoint(point_id)
# Create a poly data object
polydata = vtk.vtkPolyData()
# Set the points and vertices we created as the geometry and topology of the polydata
polydata.SetPoints(points)
polydata.SetVerts(vertices)
polydata.Modified()
# Mapper for points
mapper = vtk.vtkPolyDataMapper()
mapper.SetInput(polydata)
# ACTOR for points
actor = vtk.vtkActor()
actor.SetMapper(mapper)
actor.GetProperty().SetPointSize(apoint_size)
return actor, polydata
根據您計划對數據執行的操作,將它們加載到 numpy 數組中可能是最有效的:
from vtk.util import numpy_support
src_points = numpy_support.vtk_to_numpy(polydata.GetPoints().GetData())
python 的內置幫助對於 VTK 也非常有用。
import vtk
polydata = vtk.vtkPolyData()
help(vtk)
help(polydata)
points = polydata.GetPoints()
沒有 python 文檔,但 cpp API 是相同的:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.