【问题标题】:What does "linear interpolation" mean?“线性插值”是什么意思?
【发布时间】:2011-03-11 07:26:32
【问题描述】:

我经常在 WPF 中的动画上下文中听到“线性插值”一词。 “线性插值”到底是什么意思?你能举个例子在哪里使用“线性插值”吗?

【问题讨论】:

标签: wpf


【解决方案1】:

线性表示直线(直线)。

插值是在其他两个点找到一个点的行为。将此与外推法进行对比,外推法是在直线末端之外找到一个点。

所以线性插值是使用直线来找到其他两个点之间的点。

例如:

     *(5,10)
    /
   /
  /
 /
*(0,0)

您可以使用两个端点进行线性插值来获得沿线的点:

(1,2)
(2,4)
(3,6)
(4,8)

和线性外推得到(例如):

(1000,2000)
(-1e27,-2e27)

在动画中,假设您有一个弹跳球,它在10 秒内从(60,22)(x,y) 位置移动到(198,12)

以每秒 10 帧的动画速率,您可以随时计算它的位置:

x0 = 60, y0 = 22
x1 = 198, y1 = 12
frames = 100
for t = 0 to frames:
    x = (x1 - x0) * (t / frames) + x0
    y = (y1 - y0) * (t / frames) + y0

底部的这两个公式是线性插值的示例。 50%(t == 50):

x = (198 - 60) * (50 / 100) + 60
  =     138    *    0.5     + 60
  =            69           + 60
  =                  129

y = (12 - 22) * (50 / 100) + 22
  =    -10    *    0.5     + 22
  =           -5           + 22
  =                   17

(129,17) 是起点和终点之间的中点。

【讨论】:

  • 它也可能意味着在恒定速率方面是线性的,因此无论您身在何处,插值都不会改变速率。
  • 我喜欢这个解释,简单易懂。
  • BRAVOO,这是我第一次了解线性插值,很好的答案:)
【解决方案2】:

例如当您希望情节提要使用固定速度将元素从一个位置移动到另一个位置时,您将在开始位置和结束位置之间使用线性插值。

【讨论】:

  • 如果你有一个非线性插值,你可以让元素看起来开始快,当它接近目的地时变慢
猜你喜欢
  • 2019-05-11
  • 2015-03-06
  • 2015-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
相关资源
最近更新 更多