Лабораторная работа №5 (2 часа)



 

Программирование графики

Цель: получить навыки работы с графической подсистемой средствами Delphi; создать ПП с элементами графического интерфейса.

Оборудование: ПЭВМ IBM PC-AT.

Программные средства: ОС семейства Windows, среда Delphi 5.* (или выше).

 

Задание

 

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

Варианты цветов указываются в табл. 5.1.

 

Таблица 5.1

Цвет
1 Красный
2 Желтый
3 Зелёный
4 Голубой
5 Синий
6 Серый

 

Программа работы

 

1. Изучить свойства и методы работы с компонентом TCanvas.

2. Изучить работу функции RGB().

3. Получить вариант задания.

4. Разобраться с алгоритмами примеров отдельных частей исходного кода.

5. Придумать формулы для формирования аргументов функции RGB().

6. Получить набор файлов с изображениями кадров видеоряда.

7. Написать текст программы.

8. Выявить и исправить ошибки.

9. Расставить по тексту комментарии.

10.  Откомпилировать исходный текст программы.

 

Пояснения к работе

 

Сердцевиной графической подсистемы Delphi является класс TCanvas.

Большинство визуальных компонентов, с которыми имеет дело разработчик программного обеспечения в среде Delphi, обладают собственным свойством (property) типа TCanvas. В дальнейшем это свойство для любого компонента мы будем называть просто "канвой".

Для рисования канва включает в себя шрифт (TFont), перо (TPen) и кисть (TBrush), а также имеет набор функций для рисования типовых геометрических фигур. Кроме того, можно рисовать, получив доступ к каждому пикселю. Свойство канвы Pixels[X, Y], имеющее тип TColor, соответствует цвету точки с координатами (X,Y), где X и Y - типа Integer.

Цвета точек могут быть заданы с помощью функции RGB (bRed, bGreen, bBlue), где bRed, bGreen, bBlue - соответствующая доля красного, зеленого и синего в суммарном цвете RGB. Значение доли каждого цвета задается в единицах в диапазоне от 0 до 255.

Наглядно исследовать работу функции RGB() можно через окно Инспектора объектов при расширенном определении цвета (свойства Color для любого визуального компонента), двигая полозок насыщенности тона и наблюдая изменения значений bRed, bGreen и bBlue.

Набор кадров для анимации (из файла Ran_1.bmp) требуется преобразовать с помощью редактора Paint в 11 отдельных файлов. Далее с помощью метода-обработчика LoadFromFile для свойства Picture и события OnTimer компонента TImage задаётся циклическое изменение картинки на канве.

 

Указания к выполнению работы

Изучите работу функции RGB().

Запустите оболочку Delphi.

Создайте новое приложение.

Задайте ширину и высоту окна формы по 255 пикселей.

Закрасьте рабочее поле формы цветом, определённым в соответствии с вариантом, так, чтобы получился плавный переход сверху вниз от самых темных тонов к самым светлым (рис. 5.1). Для этого разместите на форме компонент TImage, установите значение его свойства Align в alClient. Далее используйте событие OnShow для Form1 и "заготовку" обработчика для него, где требуется правильно задать значения параметров функции RGB(), обозначенные знаком "?":

 

With Image1.Canvas do

Begin

Pen.Width := 2;

Pen.Style := psInsideFrame;

for y := 255 downto 0 do

for x := 0 to 255 do

Pixels [y,x] := RGB (?,?,?);

end;

 

К примеру, для получения плавного перехода серого цвета все три параметра функции RGB() должны определяться однозначно переменной y:

 

Pixels [y,x] := RGB (y,y,y);

 

Поместите в поле формы ещё один компонент TImage. Задайте его свойству TransParent значение True.

Добавьте в форму компонент TTimer.

Используя набор графических изображений из 11 файлов, в теле обработчика события OnTimer задайте смену кадров на канве компонента Image2. Для этого применяйте счётчик кадров (глобальную переменную типа integer), функцию преобразования типа integer в string (IntToStr()) (для формирования имени файла с изображением очередного кадра) и метод-обработчик LoadFromFile (для загрузки изображения из этого файла).

Подберите наиболее подходящий интервал для работы таймера.

Протестируйте и проверьте правильность выполнения вашей ПП.

 

 

Рис. 5.1. Плавный переход полутонов

 

Подключите к проекту собственную иконку, задайте название для формы и откомпилируйте конечный вариант программы.

Продемонстрируйте работу преподавателю.

Контрольные вопросы и задания

 

1. Какие компоненты инкапсулирует в себе класс TCanvas?

2. Каковы назначение и функции компонента TFont?

3. Каковы назначение и функции компонента TPen?

4. Каковы назначение и функции компонента TBrush?

5. Раскройте назначение функции RGB.

 

 


Дата добавления: 2018-05-13; просмотров: 271; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!