我通过PYTHON脚本读取了一个格式为vtk的非结构化网格。我想抵消这个UGrid的每一点。我的意思是,我有一个x、y和z偏移,我想将其应用于UGrid,这样我就可以获得两个不同网格的相同原点。我不能直接指定这个偏移量,因为坐标是元组。欢迎任何建议。
Thx,
Arnaud
我经常使用以下函数来读取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]))
最初,我使用它来旋转和剪切网格,但应用偏移更容易。