2.5.5.5. Создание анимации
Каждый студент примерно представляет себе принципы создания анимации: совокупность множества кадров, отличающихся немного друг от друга. Это при быстром поочередном просмотре кадров и создает иллюзию движения. В своей работе вряд ли придется рисовать с помощью Delphi мультфильмы. Для этого имеются совершенно другие инструменты. Но некоторые простые анимации ‑ оживление изображений, иногда желательно делать. Например, при создании какой-нибудь обучающей программы можно оживить какие-то схемы или условные изображения механизмов, чтобы показать в движении взаимодействие их отдельных составляющих.
В качестве примера создадим анимацию движения объекта на колесах по дороге (рисунок 10).
Рисунок 10 – Окно О программе с анимированным изображением
Порядок создания следующий.
Открываем новое приложение. Переносим на форму компоненты Image (страница Additional) и Timer (страница System). Анимация будет запускаться при создании формы (событие Create) и воспроизводится непрерывно.
Таймер будет задавать темп смены кадров. Следует задать значение свойства Interval таймера равным 100 (поскольку интервал задается в миллисекундах, то это значение соответствует 0,1 секунды). Размещение компонентов закончено. Теперь надо ввести текст программы. Ее раздел implementation имеет следующий вид:
const
h=52; {длина корпуса}
b=25; {высота корпуса}
yz=60; {высота (сверху вниз) расположения дороги}
rk=7; {радиус колеса}
…
var
xn:integer;
…
Procedure draw1;
begin
with FormAbout.Image1.Canvas do
begin
rectangle(xn,yz-2*rk-b,xn+h,yz-2*rk);{корпус машины}
ellipse((xn+h div 4-rk),(yz-2*rk),
(xn+h div 4+rk),yz); {одно колесо машины}
ellipse((xn+h div 4-rk+h div 2),(yz-2*rk),
(xn+h div 4+rk+h div 2),yz);{другое колесо}
end;
end;
procedure clean;
begin
FormAbout.image1.Canvas.rectangle(0, 0, FormAbout.image1.Width, FormAbout.image1.Height);
end;
procedure doroga;
begin
with FormAbout.image1.Canvas do
begin
pen.Width:=4;{перо толщиной 4 единицы}
moveto(0,yz+2);{перемещаем курсор в указанную точку}
lineto(FormAbout.Image1.Width,yz+2);{рисуем линию}
pen.Width:=1; {перо толщиной 1 единица}
end;
end;
procedure TFormAbout.FormCreate(Sender: TObject);
begin
xn:=1
end;
procedure TFormAbout.Timer1Timer(Sender: TObject);
begin
clean;
doroga;
draw1;
xn:=xn+10;
if xn>=(image1.Width-h) then xn:=1;
end;
Формирование анимации заключается в использовании (в данном случае) трех пользовательских подпрограмм clean, doroga и draw1. Процедура clean очищает окно от всех объектов. Процедура doroga создает горизонтальную линию, соответствующей дороге, по которой движется объект. Процедура draw1создает сам движущийся объект (прямоугольный корпус и два колеса). Следующий объект рисуется со смещением по горизонтали на 10 единиц. Далее кадры повторяются с интервалом в 0,1 секунды (свойство таймера) до тех пор, пока форма не будет закрыта.
Оператор
if xn>=(image1.Width-h) then xn:=1;
позволяет отрисовывать изображение заново, когда объект достиг правой границы окна.
- Информатика
- Информатика
- 1. Структура пояснительной записки
- 2. Оформление основных разделов
- 2.1. Титульный лист
- 2.2. Бланк заданий
- 2.3. Содержание
- 2.4. Введение
- 2.5. Основные разделы курсовой работы
- 2.5.1. Математическое решение задачи
- 2.5.2. Алгоритмизация вычислительных процессов
- 2.5.3. Таблица идентификаторов
- 2.5.4. Разработка интерфейса пользователя
- 2.5.5. Структура программного приложения
- 2.5.5.1. Падающее и контекстное меню
- 2.5.5.2. Статусная строка
- 2.5.5.3. Структурная обработка исключительных ситуаций
- 2.5.5.4. Динамически подключаемые библиотеки
- 2.5.5.5. Создание анимации
- 2.5.5.6. Вызов внешнего приложения
- 2.5.5.7. Импорт данных в Microsoft Excel и Microsoft Word
- 2.5.5.8. Построение графических зависимостей
- 2.5.5.9. Использование системных диалогов.
- 2.5.5.10. Ввод-вывод данных через внешний файл
- 2.5.5.11. Дополнительные элементы программы
- 2.6. Разработка справочной системы
- 2.6.1. Создание rtf-файла
- 2.6.1.1. Оформление разделов
- 2.6.1.2. Организация поиска по разделам
- 2.6.1.3. Оформление списка ключевых слов
- 2.6.2. Создание файла справочной системы
- 2.6.3. Создание содержания
- 2.6.4. Использование справочной системы в программе
- 2.7. Расчет контрольного примера
- 2.8. Заключение
- 2.9. Список использованных источников информации
- 3. Защита курсовой работы
- 4. Задания для выполнения курсовой работы
- 4.1. Специальность I-37 01 03 – «Тракторостроение»
- 4.2. Специальность I-37 01 04 – «Многоцелевые гусеничные и колесные машины»
- 4.3. Специальность I-37 01 05 – «Городской электрический транспорт»
- Курсовая работа
- «Информатика»
- Реферат
- 25 Стр., 7 рис., 6 табл., 8 источн., 1 прил.