QSem
@QSem
о себе?!

Интерполяция, как ее реализовать?

Господа)
Суть вопроса такова:
Есть три точки a,b,c

где
а - стартовая точка
b - конечная точка
c - промежуточная точка

Мне надо переместить елемент с точки а в точку b. Точнее сделать как бы прыжок елемента (div), где точка с , будет высотой прыжка и центром по оси х между двумя точками.

Исходя из всего я понял что мне надо интерполяция по трем точкам.
Формула типа такая вышла.

move(){
        let a = {x: 250, y: 550};
        let b = {x: 450, y: 50};
        let c = {x: 650, y: 550};
        const bizue1 = this.interpolate(a, b);
        const bizue2 = this.interpolate(b, c);
        const finalCoords = this.interpolate(bizue1, bizue2);

        this.frog.style.left = `${finalCoords.x}px`;
        this.frog.style.top = `${finalCoords.y}px`;
   }

    interpolate(a, b) {
        const nx = a.x + (b.x - a.x) * this.k;
        const ny = a.y + (b.y - a.y) * this.k;
        return {x:nx,  y:ny};
    }
}


где this.k это коефициент от 0 до 1 ( от 100%)
Но ничего не работает правильно)
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы