VTK UnstructuredGrid偏移坐标

时间:2013-12-14 01:01:27

标签: python vtk

我通过PYTHON脚本读取了一个非结构化网格,格式为vtk。我想要抵消这个UGrid的每一点。我的意思是我有一个x,y和z偏移,我想将其应用于UGrid,以便我可以获得两个不同网格的相同原点。由于坐标是元组,我无法直接指定此偏移量。任何有兴趣的建议。

THX,

阿诺

1 个答案:

答案 0 :(得分:0)

我经常使用的是以下函数来读取ascii vtk文件,处理这些点并将其再次写入新文件。

def offsetVTK(infilename, outfilename, offset):
    outfil = open(outfilename,'w')
    with open(infilename,'r') as infil:
        lin = 1
        while lin:
            lin = infil.readline()
            if lin.lower().startswith('points'):
                numpt = int(lin.split()[1])
                outfil.write(lin)
                for i in xrange(numpt):
                    outfil.write('{0[0]} {0[1]} {0[2]}\n'.format(
                       np.array(infil.readline().split(),dtype=float) + offset))
            else:
                outfil.write(lin)
    outfil.close()

offsetVTK('ray.vtk','ray_off.vtk', np.array([100,0,0]))

最初,我用它来旋转和剪切网格,但是应用偏移更容易。