VTK学习笔记(三十三)从vtkPolyData获取点数据

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]

猜你喜欢

转载自blog.csdn.net/juluwangriyue/article/details/124165733
今日推荐