Перемещение объекта из вектора A в B в 2-мерной среде с приращениями в процентах - PullRequest
6 голосов
/ 01 июня 2011

Я знаю координаты векторов A и B. Как я могу посчитать первую точку между этими двумя векторами?Первый вектор X составляет 1% от расстояния между векторами A и B. Поэтому сначала я переместлю объект в векторе A на 1% ближе к вектору B. Поэтому мне нужно вычислить вектор X, который является новым вектором для объекта, пока он не достигнет вектора B.

Ответы [ 2 ]

18 голосов
/ 01 июня 2011

Вы хотите lerp ing.Для справки, основная формула имеет вид:

x = A + t * (B - A)

Где t находится между 0 и 1. (Все, что находится за пределами этого диапазона, делает его extra polation.)

Убедитесь, что x = A при t = 0 и x = B при t = 1.

Обратите внимание, что в моем ответе не упоминаются векторы или 2D.

14 голосов
/ 01 июня 2011

Превращение ответа 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...