首页 > 解决方案 > 带步长的两个数字之间的线性插值

问题描述

我很难找出如何在两个数字之间进行线性插值,中间步骤的数量是定义的。

假设我想在 4 到 22 之间插入 8 个中间步骤,如下所示:示例

很容易看出这里是 x+2。但是如果起始值为 5,最终值为 532,中间有 12 个步骤呢?(在我的特殊情况下,我需要开始和结束值之间有 16 个步骤)

标签: c#unity3dmath

解决方案


如果您有两个栅栏柱,并且在它们之间放置 k 个栅栏柱,则创建 k + 1 个空间。例如:

|           |
post1       post2


      adding one posts creates two spaces
|     |     |
post1       post2

如果您希望这些 k + 1 个空格相等,则可以将总距离除以 k + 1 以获得相邻帖子之间的距离。

d = 22 - 4 = 18
k = 8
e = d / (k + 1) = 18 / 9 = 2

在您的其他案例中,答案是

d = 532 - 5 = 527
k = 12
e = d / (k + 1) = 527 / 13 ~ 40.5

推荐阅读