[英]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.