使用存储在 vtkDataArray 中的数据填充 vtkDataSet(vtkStructuredGrid)?
Populate a vtkDataSet(vtkStructuredGrid) with data stored in a vtkDataArray?
我正在使用结构化和非结构化网格。
我有一个 3D 网格,就像这样。
我希望每个单元格都有一个属性向量。
所以,如果我有一个 vtkDataArray(例如 vtkDenseArray)。对于每个单元格:
如何使用存储在 dataArray 中的数据填充 vtkStructuredGrid?
在 python 我会这样做:
import vtk,math
sg = vtk.vtkStructuredGrid()
n = 6
sg.SetDimensions([n,n,n])
vec = vtk.vtkFloatArray()
vec.SetNumberOfComponents(3)
pts = vtk.vtkPoints()
for kx in range(n):
for ky in range(n):
for kz in range(n):
pts.InsertNextPoint(kx*0.1,ky*0.1,kz*0.1)
for kx in range(n-1):
for ky in range(n-1):
for kz in range(n-1):
vec.InsertNextTuple([math.cos(ky*0.05*math.pi),
math.sin(kx*0.05*math.pi),0.1*kz])
sg.SetPoints(pts)
sg.GetCellData().SetVectors(vec)
w = vtk.vtkXMLStructuredGridWriter()
w.SetInputData(sg)
w.SetFileName('sgrid_cd.vts')
w.Write()
我认为在 c++ 中使用 vtkDenseArray 不会有任何不同。
我正在使用结构化和非结构化网格。
我有一个 3D 网格,就像这样。
所以,如果我有一个 vtkDataArray(例如 vtkDenseArray)。对于每个单元格:
如何使用存储在 dataArray 中的数据填充 vtkStructuredGrid?
在 python 我会这样做:
import vtk,math
sg = vtk.vtkStructuredGrid()
n = 6
sg.SetDimensions([n,n,n])
vec = vtk.vtkFloatArray()
vec.SetNumberOfComponents(3)
pts = vtk.vtkPoints()
for kx in range(n):
for ky in range(n):
for kz in range(n):
pts.InsertNextPoint(kx*0.1,ky*0.1,kz*0.1)
for kx in range(n-1):
for ky in range(n-1):
for kz in range(n-1):
vec.InsertNextTuple([math.cos(ky*0.05*math.pi),
math.sin(kx*0.05*math.pi),0.1*kz])
sg.SetPoints(pts)
sg.GetCellData().SetVectors(vec)
w = vtk.vtkXMLStructuredGridWriter()
w.SetInputData(sg)
w.SetFileName('sgrid_cd.vts')
w.Write()
我认为在 c++ 中使用 vtkDenseArray 不会有任何不同。