我通过PYTHON脚本读取了一个非结构化网格,格式为vtk。我想要抵消这个UGrid的每一点。我的意思是我有一个x,y和z偏移,我想将其应用于UGrid,以便我可以获得两个不同网格的相同原点。由于坐标是元组,我无法直接指定此偏移量。任何有兴趣的建议。
THX,
阿诺
答案 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]))
最初,我用它来旋转和剪切网格,但是应用偏移更容易。