Помощь в написании студенческих работ
Антистрессовый сервис

Реализация математических функций для анимирования переходов между состояниями объектов

РефератПомощь в написанииУзнать стоимостьмоей работы

Здесь видно, что значение параметра определяющего состояние объекта изменяется по линейной зависимости от части прошедшего времени в заданном интервале. В данной функции и далее progress — это часть заданного интервала времени, которая прошла с момента изменения состояния. Реализация для квадратичной функции и функции от аргумента пятой степени были объединены в один метод, принимающий на вход… Читать ещё >

Реализация математических функций для анимирования переходов между состояниями объектов (реферат, курсовая, диплом, контрольная)

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

Для линейной функции реализация наиболее проста и выглядит как показано ниже.

def deltaLinearAnimation (self, progress):

return progress.

Здесь видно, что значение параметра определяющего состояние объекта изменяется по линейной зависимости от части прошедшего времени в заданном интервале. В данной функции и далее progress — это часть заданного интервала времени, которая прошла с момента изменения состояния.

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

def deltaPowerOfNAnimation (self, progress, power):

return Math. Pow (progress, power).

Вычисление функции определяющей дугу окружности выглядит следующим образом:

def deltaCircleAnimation (self, progress):

return 1 — Math. Sin (Math.ACos (progress)).

Следующим является метод для вычисления анимации по закону синуса:

def deltaSineAnimation (self, progress):

return 1 — Math. Sin ((1 — progress) * Math. PI / 2).

Реализация функции описывающей возрастающие колебательные движения:

def deltaElasticAnimation (self, progress, x):

return Math. Pow (2, 10 * (progress — 1)).

* Math. Cos (20 * Math. PI * x / 3 * progress).

Заключительной является так называемая функция «back». Её реализация представлена ниже.

def deltaBackAnimation (self, progress, x):

return Math. Pow (progress, 2) * ((x + 1) * progress — x).

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

Показать весь текст
Заполнить форму текущей работой