VTK学习笔记(三十三)从vtkPolyData获取点数据
1、使用 numpy_support
from vtk.util import numpy_support
import numpy as np
points = vtk.vtkPoints()
points.InsertNextPoint(0.0, 0.0, 0.0)
points.InsertNextPoint(1.0, 0.0, 0.0)
points.InsertNextPoint(2.0, 0.0, 0.0)
original = vtk.vtkPolyData()
original.SetPoints(points)
orig_points = numpy_support.vtk_to_numpy(original.GetPoints().GetData())
print(orig_points)
print(original.GetPoints())
print(original.GetPoints().GetData())
打印输出
[[0. 0. 0.]
[1. 0. 0.]
[2. 0. 0.]]
vtkPoints (000001AE1F4096E0)
Debug: Off
Modified Time: 336
Reference Count: 2
Registered Events: (none)
Data: 000001AE1D3E9FB0
Data Array Name: Points
Number Of Points: 3
Bounds:
Xmin,Xmax: (0, 2)
Ymin,Ymax: (0, 0)
Zmin,Zmax: (0, 0)
vtkFloatArray (000001AE1D3E9FB0)
Debug: Off
Modified Time: 336
Reference Count: 2
Registered Events: (none)
Name: Points
Data type: float
Size: 9
MaxId: 8
NumberOfComponents: 3
Information: 0000000000000000
Name: Points
Number Of Components: 3
Number Of Tuples: 3
Size: 9
MaxId: 8
LookupTable: (none)
2、使用接口获取
import vtk
points = vtk.vtkPoints()
points.InsertNextPoint(0.0, 0.0, 0.0)
points.InsertNextPoint(1.0, 0.0, 0.0)
points.InsertNextPoint(2.0, 0.0, 0.0)
original = vtk.vtkPolyData()
original.SetPoints(points)
number = original.GetNumberOfPoints()
point = [0.0] * 3
for id in range(number):
original.GetPoint(id, point)
print(point)
输出:
[0.0, 0.0, 0.0]
[1.0, 0.0, 0.0]
[2.0, 0.0, 0.0]