1
我想從tvtk.PolyData
實例中提取頂點數據。例如:如何從tvtk PolyData實例中提取頂點數據?
from numpy import array
from tvtk.api import tvtk
from mayavi.sources.vtk_data_source import VTKDataSource
from mayavi.modules.surface import Surface
from mayavi import mlab
pointArr=array([[0,0,0],[1,0,0],[1,1,0],[0,1,0],[0,1,1],[1,1,1]],dtype="float64")
faceArr=array([[0,1,2,3],[2,3,4,5]])
faces = tvtk.PolyData()
faces.points=pointArr
print faces.points
faces.polys=faceArr
faces.point_data.scalars = pointArr[:,2]
faces.point_data.scalars.name = 'Height'
src = VTKDataSource(data = faces)
mlab.pipeline.surface(src, opacity=1.)
mlab.show()
這將打印
vtkPoints (0x9811398)
Debug: Off
Modified Time: 838816
Reference Count: 2
Registered Events:
Registered Observers:
vtkObserver (0x98112b8)
Event: 33
EventName: ModifiedEvent
Command: 0x9811688
Priority: 0
Tag: 1
Data: 0x9811480
Data Array Name: Points
Number Of Points: 6
Bounds:
Xmin,Xmax: (0, 1)
Ymin,Ymax: (0, 1)
Zmin,Zmax: (0, 1)
這到底是怎麼回事?我期望看到的NumPy的數組:
[[ 0. 0. 0.]
[ 1. 0. 0.]
[ 1. 1. 0.]
[ 0. 1. 0.]
[ 0. 1. 1.]
[ 1. 1. 1.]]
你有任何問題的可視化? – mdurant 2014-09-12 14:28:37
謝謝,這解決了我的問題!我不知道一個對象在Python中可能有不同的視圖。 Python如何知道如何將Points對象轉換爲NumPy數組? – 2014-09-13 07:04:46
numpy查找緩衝區或內存視圖接口,或者可以處理任何可迭代的數據類型。 – mdurant 2014-09-13 16:30:55