NumPy/matplotlib中的时间插值
在ParaView中制作动画时,有一个功能可以对输入文件进行时间插值。这个功能可以让动画看起来更流畅。那么在使用NumPy和matplotlib生成多个轮廓图的动画时,有没有类似的功能可以帮助让动画更平滑呢?还是说我需要手动对数据进行时间插值呢?
1 个回答
2
VTK的TemporalInterpolator
是用来在不规则的空间网格上,在不同时间点之间进行数据插值的工具。如果你的数据是存储在二维的NumPy数组中,那么插值的过程会简单很多。因此,VTK并没有专门的函数来处理这个问题,你需要自己手动来完成。
假设a0
是你在时间t0
时的二维数据数组,而a1
是时间t1
时的数据。对于某个时间t0 <= t <= t1
,线性插值后的数据a_t
可以用下面的公式表示:
delta_t = t1 - t0
a_t = (t1 - t) / delta_t * a_0 + (t - t0) / delta_t * a_1
虽然还有比简单线性插值更复杂的插值方法,但VTK的TemporalInterpolator
也是使用这种简单的方法。