Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx56 / Записка (2).docx
Скачиваний:
17
Добавлен:
01.08.2013
Размер:
76.33 Кб
Скачать
  1. Проектирование компонента для анимирования переходов между состояниями объектов.

    1. Определение основных требований к разрабатываемому компоненту.

Определим основные требования, которые будут предъявлены к разрабатываемому компоненту.

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

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

Следующее требование относится к интерфейсу разрабатываемого компонента. Он должен быть достаточно гибким для того, что бы существовала возможность анимирования практически любых изменяющихся характеристик состояния объекта. Это означает что должна быть возможность анимировать не только какой-то определённый параметр состояния объекта, а любой необходимый, или совокупность параметров одновременно. Действительно, наличие какого-либо ограничения на параметры состояния (к примеру возможность анимировать только лишь перемещение объекта) очень негативно повлияет на относительную полезность разработанного компонента. Данное требование в совокупности со вторым позволит разработчику создать по настоящему «живой» и привлекательный интерфейс.

Ещё одним немаловажным требованием к разрабатываемому компоненту является его переносимость на различные платформы. Данное требование позволит избежать переписывания и специализации кода для какой-либо конкретной платформы. Одним из вариантов выполнения данного требования может быть использования интерпретируемого языка при реализации компонента.

Выполнение данных требований позволит создать действительно мощный и универсальный компонент для анимирования поведения объектов.

    1. Определение основных математических законов используемых для генерации промежуточных состояний объектов.

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

Генерация промежуточных состояний производится с использованием математических функций, аргументом которых является процент времени прошедшего от начала изменения состояния и до его завершения. Данная величина обычно принимает значения от 0 до 1. В результате нахождения значения функции от заданного аргумента мы получаем величину, определяющую, какую часть от величины изменения параметра состояния необходимо использовать при задании текущего состояния.

Простейшей такой используемой функцией является линейная функция, которая определяет линейность изменения состояния в течении всего заданного отрезка времени. Математическая формула для линейной функции представлена ниже:

(2.2.1)

График такой функции приведён на Рисунке 2.2.1.

Рисунок 2.2.1

Следующей, уже более сложной функцией является квадратичная функция. При использовании такой функции параметры состояния ускоряют своё изменения с течением времени. Математическая формула для квадратичной функции приведена ниже.

(2.2.2)

График такой функции приведён на Рисунке 2.2.2

Рисунок 2.2.2

Подобной математической функцией является функция, определяющая сегмент окружности. Математическая формула для неё представлена ниже.

(2.2.3)

График такой функции приведён на Рисунке 2.2.3.

Рисунок 2.2.3

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

(2.2.4)

График такой функции приведён на Рисунке 2.2.4.

Рисунок 2.2.4

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

(2.2.5)

График такой функции приведён на Рисунке 2.2.5.

Рисунок 2.2.5

Более сложной функцией является следующая функция, моделирующая возрастающие колебания. Она зависит от дополнительного параметра p, который называется коофициентом инертности. Математическая формула для неё приведена ниже.

(2.2.6)

График такой функции для значения p = 1.5 приведён на Рисунке 2.2.6.

Рисунок 2.2.6

Последней заданной функцией является так называемая функция «back» которая определяет отрицательное изменения для параметров состояния в начале заданного периода времени. Эта функция изменяет параметр по типу "лука", т.е. мы сначала "отводим тетиву", а потом "стреляем". Данная функция как и предыдущая зависит от дополнительного параметра p, где p - коэффициент, через который высчитывается расстояние, на которое мы "отводим" параметр. Математическая формула для неё приведена ниже.

((p + 1) * x - p) (2.2.7)

График такой функции для значения p = 1.5 приведён на Рисунке 2.2.7.

Рисунок 2.2.7

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

Соседние файлы в папке docx56