繁体   English   中英

如何从 polydata 实例中获取积分?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM