Господа)
Суть вопроса такова:
Есть три точки 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%)
Но ничего не работает правильно)