Доброго времени суток.
Сабж задачи, с которой я столкнулся, указан в заголовке, поэтому просто постараюсь расписать подробнее на примере.
Допустим, есть скрипт, двигающий элемент на странице и вызывающий сам себя до тех пор, пока элемент не дошел до нужного места. Соответственно, скорость получается линейной, в каждом вызове функции к положению элемента добавляется одинаковое значение, равное:
(точка конца - точка старта) / количество шагов
Меня же больше интересует возможность сделать скорость криволинейной, по заданной кривой Безье. Есть ли у вас какие-либо подсказки, в каком направлении рыть?
И да, изначальная задача несколько обширнее и сложнее, чем показанный пример, но загвоздка именно в использовании непостоянной скорости.
Простейший пример кода функции (да, я знаю о функции .animate() у jQuery, см. предыдущий абзац:))
function animate_rect(i,step) {
var rect = $('#rect');
var pos = rect.position();
rect.css({top:pos.top + ((200 - pos.top) / (step - i))});
i++;
if (i < step) setTimeout(function() {animate_rect(i,step)},10);
}
animate_rect(0,100);