在2d环境中将对象从向量A移动到B,以百分比为单位

new*_*bie 6 javascript vector linear-interpolation

我知道向量A和B的坐标.我如何计算这两个向量之间的第一个点?第一个向量X是向量A和B之间距离的1%.所以首先我将向量A中的对象移动1%接近向量B.所以我需要计算向量X,它是对象的新向量,直到它到达向量B .

aib*_*aib 18

你想要lerp ing.供参考,基本公式为:

x = A + t * (B - A)

其中t介于0和1之间.(超出该范围的任何内容都会使其成为额外的时空.)

检查x = A时间t = 0x = B时间t = 1.

请注意,我的答案没有提到矢量或2D.


Eri*_*ric 14

aib的答案转换为代码:

function lerp(a, b, t) {
    var len = a.length;
    if(b.length != len) return;

    var x = [];
    for(var i = 0; i < len; i++)
        x.push(a[i] + t * (b[i] - a[i]));
    return x;
}

var A = [1,2,3];
var B = [2,5,6];

var X = lerp(A, B, 0.01);
Run Code Online (Sandbox Code Playgroud)