Я пытаюсь построить анимированный график с помощью paper.js, который может реагировать на разные входные данные. Итак, я хочу плавно анимировать одну точку по вертикали в другую точку.
Я просмотрел разные примеры, и наиболее близким к моему является этот:
paper.tool.onMouseDown = function(event) {
x = event.event.offsetX;
y = event.event.offsetY;
paper.view.attach('frame', moveSeg);
}
var x;
var y;
function moveSeg(event) {
event.count = 1;
if(event.count <= 100) {
myPath.firstSegment.point._x += (x / 100);
myPath.firstSegment.point._y += (y / 100);
for (var i = 0; i < points - 1; i++) {
var segment = myPath.segments[i];
var nextSegment = segment.next;
var vector = new paper.Point(segment.point.x - nextSegment.point.x,segment.point.y - nextSegment.point.y);
vector.length = length;
nextSegment.point = new paper.Point(segment.point.x - vector.x,segment.point.y - vector.y);
}
myPath.smooth();
}
}
Этот код анимирует одну точку в позиции щелчка, но я не мог изменить ее в соответствии со своими потребностями.
Мне нужно:
var aim = [120, 100];
var target = aim;
// how many frames does it take to reach a target
var steps = 200;
// Segment I want to move
myPath.segments[3].point.x
И тогда я не знаю, как написать цикл, который будет производить плавную анимацию.