簡體   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