2016-12-31 3 views
1

Tweening - это термин для редактирования видео, используемый для описания простоты движения. Например, с лифтом лифт не достигает полной скорости и мертвой остановки, когда он достигает желаемого пола. Он знает, на каком этаже, на каком этаже он собирается и сколько времени потребуется, чтобы добраться туда. Затем он использует эти данные для сглаживания движения.Простота движения, программирование Tweening, C++

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

метод для того, как сделать это в заложен http://robertpenner.com/easing/penner_chapter7_tweening.pdf

В частности, глядя на pg207-211

Это руководство объясняет, что это Tweening, а затем показывает код в Action Script. Честно говоря, я чувствую себя глупо, потому что я пытался использовать предоставленные примеры, но я не могу воспроизвести его на другом языке, таком как C++, java, javascript или lua.

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

Примеры действий сценария функции ...

Math.easeInQuad = function (t, b, c, d) { 
    return c*(t/=d)*t + b; 
}; 

Math.easeOutQuad = function (t, b, c, d) { 
    return -c * (t/=d)*(t-2) + b; 
}; 

Math.easeInOutQuad = function (t, b, c, d) { 
    if ((t/=d/2) < 1) 
     return c/2*t*t + b; 
    return -c/2 * ((--t)*(t-2) - 1) + b; 
}; 
+1

В чем Ваш вопрос? –

+0

Я запрограммировал свой собственный поворот назад, прочитал мой класс ru.delimiter.math.TweenAlot по адресу http://www.delimiter.ru/as/ – Organis

ответ

2

Правильная функция Tweening в AS3 принимает 6 параметров Number с двух последних параметров неплательщиков в 0. Это следует интерпретировать параметры следующим образом:

  • Первый параметр является первичным, он заполняется значением от 0 до продолжительности анимации;
  • Второй параметр - это значение параметра, который вы пытаетесь настроить, когда первый параметр равен нулю;
  • Третий параметр - это размер интервала значений, который предполагается присвоить параметру tweening;
  • Четвертый параметр - это продолжительность в любых единицах, которые будет поставляться пользователем, следовательно, Число, а не int;
  • Пятый и шестой параметры являются необязательными и не используются в встроенной библиотеке анимации AS3, но их можно использовать для модификации интерполяции, выполняемой внутри функции, если она используется в другом месте.

Ожидаемый результат представляет собой значение между second и (second+third) параметрами, или с их каноническими именами t, b, c, d, a, p между b и b+c.

Вы можете построить график некоторой функции, используя простой алгоритм, как это:

function graph(f:Function,w:Number,h:Number):Shape { 
    // returns a shape with black on white graph drawn within a rectangle of given dimensions 
    var s:Shape=new Shape(); 
    s.graphics.lineStyle(0); // black 
    s.graphics.moveTo(0,h); // lower left corner 
    for (var i:int=0;i<w;i++) { 
     s.graphics.lineTo(i,f(i,h,-1*h,w)); 
    } 
    return s; 
} 

Говоря о C++, например, easeInQuad должен быть запрограммирован как это (если я не испортит C++ синтаксис):

double easeInQuad(double t, double b, double c, double d) { 
    double td=t/d; 
    return b+c*td*td; 
} 
Смежные вопросы