我正在使用线性插值来为屏幕上两个 2d 坐标之间的对象设置动画。这非常接近我想要的,但由于四舍五入,我得到一个锯齿状的运动。在 ASCII 艺术中:
ooo
ooo
ooo
oo
注意它是如何在曼哈顿网格中行走的,而不是 45 度转弯。我想要的是沿着Bresenham 算法创建的线的线性插值:
oo
oo
oo
oo
对于每个 x,只有一个对应的 y。(并将 x/y 换成陡峭的线)
那么我为什么不直接使用 Bresenham 算法呢?我当然可以,但该算法是迭代的,我只想知道沿线的一个坐标。
我将尝试通过线性插值 x 坐标来解决这个问题,将其四舍五入到像素网格,然后找到相应的 y。(再次,将 x/y 换成陡峭的线)。但是,无论该解决方案如何解决,我都会对其他建议以及以前的经验感兴趣。