gpt4 book ai didi

vtk - 如何在vtkStructuredGrid上设置数据值

转载 作者:行者123 更新时间:2023-12-04 14:45:34 29 4
gpt4 key购买 nike

我正在尝试使用分析字段填充结构化网格,但是尽管阅读了vtk文档,但我还没有找到如何在网格点上实际设置标量值或设置网格的间距/原点信息的方法。从下面的代码开始,我该如何

  • 将空间信息与网格相关联(即,单元格0,0,0位于坐标0,0,0,每个方向上的间距为dx)
  • 将标量值与每个网格点关联。首先,我只需要一个,但是最终我想在每个点存储3个数据(不是向量,3个不同的标量)。

  • grid = vtk.vtkStructuredGrid()
    numPoints = int((maxGrid - minGrid)/dx)
    grid.SetDimensions(numPoints, numPoints, numPoints)

    最佳答案

    在VTK中,有3种类型的“结构化”网格,即vtkImageData(从中派生出vtkUniformGrid),vtkRectilinearGrid和vtkStructuredGrid。从拓扑设置的意义上说,它们都是结构化的。 vtkImageData在点之间具有恒定的间距并且是轴对齐的,vtkRectilinearGrid是轴对齐的,但是可以在每个轴方向上改变间距,并且vtkStructuredGrid具有任意定位的点(尽管单元格可能无效)。

    对于您想做的事情,您应该做:

    from vtk import *
    dx = 2.0
    grid = vtkImageData()
    grid.SetOrigin(0, 0, 0) # default values
    grid.SetSpacing(dx, dx, dx)
    grid.SetDimensions(5, 8, 10) # number of points in each direction
    # print grid.GetNumberOfPoints()
    # print grid.GetNumberOfCells()
    array = vtkDoubleArray()
    array.SetNumberOfComponents(1) # this is 3 for a vector
    array.SetNumberOfTuples(grid.GetNumberOfPoints())
    for i in range(grid.GetNumberOfPoints()):
    array.SetValue(i, 1)

    grid.GetPointData().AddArray(array)
    # print grid.GetPointData().GetNumberOfArrays()
    array.SetName("unit array")

    关于vtk - 如何在vtkStructuredGrid上设置数据值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7666981/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com