pax*_*blo 25
线性意味着线(直线).
插值是在两个其他点内找到一个点的行为.将此与外推法进行对比,外推法是在一条线的末端之外找到一个点.
因此,线性插值是使用直线来找到两个其他点之间的点.
例如:
*(5,10)
/
/
/
/
*(0,0)
Run Code Online (Sandbox Code Playgroud)
您可以使用线性插值的两个端点来获取沿线的点:
(1,2)
(2,4)
(3,6)
(4,8)
Run Code Online (Sandbox Code Playgroud)
和线性外推得到(例如):
(1000,2000)
(-1e27,-2e27)
Run Code Online (Sandbox Code Playgroud)
在动画,让我们说你有一个反弹球从行进(x,y)
的位置(60,22)
,以(198,12)
在10
秒.
动画速率为每秒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
Run Code Online (Sandbox Code Playgroud)
底部的这两个公式是线性插值的示例.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
Run Code Online (Sandbox Code Playgroud)
并且(129,17)
是起始位置和结束位置之间的中点.
归档时间: |
|
查看次数: |
6770 次 |
最近记录: |