Проектирование формы

Кафедра Систем управления и технологических комплексов

ЛАБОРАТОРНАЯ РАБОТА №7

«Разработка графического приложения»

Краснодар, 2008

Цель работы:

Разработка в среде C++Builder простого графического приложения анимации, за основу которого взят алгоритм Давида Свэнни.

Краткая теория.

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

Фактически приложение MOVEIT и заключается в использовании объектов Sprite класса SpriteClass с буферизацией графики. Более полная иллюзия движения фигур на экране достигается за счет автоматической прокрутки изображения фона.

Проектирование формы.

Начнем проектирование приложения, перетаскивая из Палитры на форму следующие компоненты:

1. Три невидимых и пустых контейнера TImage из вкладки Additional и один видимый и пустой контейнер TPaintBox из вкладки System. Объекты DrawBox класса TImage и PaintBox класса TPaintBox совместно реализуют двойную буферизацию графики: сначала фигуры и фон рисуются на канве внеэкранного битового образа, в объекте DrawBox, а затем изображение канвы копируется на экран, в объект PaintBox.

2. Панель инструментов TPanel из вкладки Standard.

3. Таймер TTimer из вкладки System.

4. Компоненту редактирования TSpinEdit с кнопками "а" и "-у" из вкладки Samples для управления скоростью анимации.

5. Три быстрые кнопки TSpeedButton из вкладки Additional для управления работой программы.

6. Компоненту TOpenDialog из вкладки Dialogs диалога открытия файлов.

Рис. 1.1. Форма приложения анимации.

Рис. 1.1 показывает форму приложения, фоном которой служит изображение облачного неба из файла Clouds.bmp, а в качестве движущихся фигур выступают два самолета из файла Planes, bmp или два вертолета из файла Helicopters.bmp. Редактор изображений открыт двойным щелчком мышью в графе значений свойства Picture компонентного объекта Figures. Обратите внимание, что изображение каждой фигуры представлено тремя битовыми образами - первые два отображают возможные фазы анимации фигуры, а третий представляет собой бинарную маску внешнего контура. Обе фигуры различаются только цветом и имеют одинаковую форму, поэтому разделяют общую пару масок. Такая совокупность составляет банк данных спрайта.



php"; ?>