3

我需要实现一种方法,用于值之间的非线性插值、缓入、缓出、一般缓动曲线以及用户定义的曲线。

我对如何做到这一点有一个基本的想法 - 但我不确定它是否是最有效的解决方案。我的想法基本上如下:

使用二维三次、二次或 n 阶贝塞尔曲线来控制插值。线性遍历曲线得到非线性 Y 分量,并用它来赋值给一个简单的线性插值方法:

value = v1 + (v2 - v1) * t;

其中 t 是控制曲线的非线性 Y 分量。

这允许自定义、用户定义的插值方法,但这是有代价的,一个非线性插值的成本等于:

1 + 2 * (n-1)

总插值,其中 n 是控制曲线的阶数或控制点数。

我不是数学家,这是我能想到的最好的,所以我的问题是是否有更好的解决方案?

编辑:我可能解释不正确,我不是母语人士,所以希望每个人都能理解: 控制曲线插值

4

1 回答 1

3

据我了解,你t实际上是一个函数族f i (u),其中uf i (u)都在 0 和 1 之间。如果是这样,它不会比你更好'已经提出。

看起来您担心在实际曲线计算期间评估这些f i (u)值。如果您不想预先计算,则无法避免评估。如果性能是一个大问题并且您不需要非常精确,则可以根据需要计算f i (u j )表格(例如0和 1 之间的 100 或 1000 个离散点)每条曲线,当您需要采样点之间的值时,请对所需点周围的两个缓存值进行简单的线性插值。

于 2012-04-10T21:33:39.323 回答