квартальное ослабление в области расстояний вместо времени? - PullRequest
1 голос
/ 18 июля 2011

У меня нет известной «скорости», у меня есть количество пикселей для перемещения, я подаю это расстояние в «moveto», и графика на экране переходит к нему, или, если я передаю гораздо меньшие значения, яполучить красивые гладкие объекты, скользящие по экрану.В настоящее время я уменьшаю значение моего приращения на 0,1, пока оно не приблизится к нулю, чтобы произвести «инерционный» эффект, но это не приводит меня к точкам, которые я хочу получить.У меня другой вопрос о переполнении стека об обработке превышений, но я нашел это:

///////////// QUARTIC EASING: t ^ 4/////////////////////

// quartic easing in - accelerating from zero velocity 
// t: current time, b: beginning value, c: change in value, d: duration
// t and d can be frames or seconds/milliseconds
Math.easeInQuart = function (t, b, c, d) {
    return c*(t/=d)*t*t*t + b;
};

Я хочу изменить это так, чтобы получить такой же эффект приземления напредопределенная точка, но путем ввода текущего местоположения и места назначения.

Я знаю, что в анализе Фурье временная область может быть преобразована в частотную область.Как мне преобразовать временную область в дистанционную?

Далее, есть ли простое преобразование, которое я могу сделать с любым уравнением или алгоритмом, основанным на времени, преобразовать его в алгоритм на основе расстояния?

Что я пытаюсь сделать, это посадить объект наточное положение или очень близкое с «промежуточным» эффектом замедления.Приведенная выше демонстрация смягчения квартетов дала тот эффект, который я хочу.

1 Ответ

0 голосов
/ 18 июля 2011

Просто решите уравнение.

Кажется, что позиция после времени t равна c * (t/d)^4 + b.Если вы хотите, чтобы это была заданная точка p, то t = d*((p - b)/c)^(1/4).

Разве это не то, что вы хотите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...