Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование delphi.doc
Скачиваний:
806
Добавлен:
09.02.2015
Размер:
2.97 Mб
Скачать

5.2. Создание программы «Графические примитивы»

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

Окно программы представлено на рис. 5.4.

Процесс создания программы происходит по следующему алгоритму:

  1. Запустить Delphi.

  2. Сохранить проект («work5.dpr», «main.pas»).

  3. Настроить вид экрана:

  • настроить размеры формы: ширину (свойство Width) установить в 600, а высоту (свойство Height) – в 370;

  • форма содержит всего 2 элемента: видимый элемент – кнопка (Button) и элемент таймер (Timer) для создания мультфильма. Все остальные элементы создаются программно: изменить заголовок окна: Графические примитивы (Caption);

  • поместить кнопку для программирования выхода (Button, Standard, ): назвать кнопку BQuit (Name);

  • поместить на форму элемент таймера (Timer, System, ); установить время обращения к этому элементу – 1 раз в секунду (1000 мс); так как значения таймера задаются в миллисекундах, убедиться, что значение Interval равно 1000.

  1. Форма настроена!

  2. Запрограммировать выход из программы: команда «Close» при нажатии на кнопку BQuit.

  3. Чтобы осуществить прорисовку изображения сразу при запуске программы, настроить событие прорисовки окна – onPaint (щелкнуть на форму (Form1), выбрать свойство onPaint, вкладка Events в Инспекторе объектов), щелкнуть на этом событии.

  4. Запрограммировать правую часть окна на рис. 5.4:

  • назначить область рисования Canvas – набрать после begin текст:

with canvas do //Обращаемся к свойствам холста

begin

{Область рисования}

end;

  • для вывода текста настроить цвет фона и свойства шрифта (набрать текст после строки {Область рисования}):

Brush.Color := clBtnFace; //Цвет фона – цвет кнопки в стандарте Windows

with Font do //Обращаемся к свойствам шрифта

begin

Name := 'Times New Roman'; //Имя шрифта

Size := 12; //Размер шрифта

Style := [fsBold,fsItalic]; //Стильжирный курсив

end;

{Настройка шрифта закончена}

  • набрать текст программирования примитивов:

TextOut(410,22,'(TextOut)'); //Вывод текста

Pen.Color := clBlack; //Цвет карандаша – черный

Brush.Color := clWhite; //Цвет кисти белый

Pixels[350,80] := clRed; //Вывод точки

Brush.Color := clBtnFace;

{Смена цвета на цвет фона (цвет кнопки в стандарте Windows)

для вывода текста-подсказки}

TextOut(335,85,'(Pixels)');

Brush.Color := clWhite;

MoveTo(400,80); //Переместить курсор

LineTo(450,80); //Соединить с точкой – получится линия

Brush.Color := clBtnFace;

TextOut(405,85,'(MoveTo)');

TextOut(405,100,'(LineTo)');

Brush.Color := clWhite;

PolyLine([Point(480,100),Point(505,50),Point(530,100)]); //Ломаная кривая

Brush.Color := clBtnFace;

TextOut(480,105,'(PolyLine)');

Brush.Color := clWhite;

Rectangle(325,125,375,175); //Прямоугольник

Brush.Color := clBtnFace;

TextOut(325,180,'(Rectangle)');

Brush.Color := clWhite;

RoundRect(400,125,455,175,20,20); //Прямоугольник с закругленными углами

Brush.Color := clBtnFace;

TextOut(400,180,'(RoundRect)');

Brush.Color := clWhite;

PolyGon([Point(480,175),Point(505,125),Point(530,175)]); //Многогранник

Brush.Color := clBtnFace;

TextOut(480,180,'(PolyGon)');

Brush.Color := clWhite;

Ellipse(325,210,375,260); //Эллипс

Brush.Color := clBtnFace;

TextOut(335,270,'(Ellipse)');

Brush.Color := clWhite;

Arc(400,210,455,260,427,210,455,235); //Дуга

Brush.Color := clBtnFace;

TextOut(420,270,'(Arc)');

Brush.Color := clWhite;

Pie(480,210,530,260,530,234,504,210); //Сектор

Brush.Color := clBtnFace;

TextOut(500,250,'(Pie)');

  • для демонстрации мультипликации запрограммировать перемещение глаз у кота «влево – вправо». Добавить начальную прорисовку глаз:

Pen.Color := clWhite; //Цвет глаз – белый – карандаш

Brush.Color := clWhite; //Цвет глаз – белый – кисть

//Таким образом, рисуем и закрашиваем одним цветом

Ellipse(73,105,113,147); // Левый глаз

Ellipse(138,105,178,147); // Правый глаз

Pen.Color := clGreen; //Цвет зрачков зеленый

Brush.Color := clGreen; //Цвет зрачков зеленый

Pie(85,115,110,145,90,135,60,145); // Левый зрачок

Pie(150,115,175,145,155,135,75,145); // Правый зрачок

end; // Конец рисования на холсте

Замечание. При программировании сложного изображения следует располагать элементы послойно – сначала те, что расположены на нижнем фоне, а затем те, что выше.

  1. Запрограммировать изменение положения зрачков:

  • необходимо ввести глобальную переменную, которая будет отвечать за сторону, куда смотрят глаза: в программе найти строчку implementation (необходима глобальная переменная) и ввести в разделе переменных переменную B логического типа:

var

B : Boolean;

  • вернуться на изображение формы (нажать <F12>) и выбрать событие onActivate у формы, щелкнуть на нем и ввести следующий текст:

B := true; // Начальное значение переменной B

  • снова вернуться на изображение формы, выбрать объект Timer и запрограммировать его свойство onTimer – перерисовка, набрать следующий текст:

with Canvas do //Снова обращаемся к холсту

begin

If B then //Если глаза смотрят вправо

begin

//Закрашиваем правые зрачки цветом глаза ­– белым

Pen.Color := clWhite;

Brush.Color := clWhite;

Pie(85,115,110,145,90,135,60,145); // Левый зрачок

Pie(150,115,175,145,155,135,75,145); // Правый зрачок

// Цвет зрачка – зеленый

Pen.Color := clGreen;

Brush.Color := clGreen;

//Рисуем левые зрачки

Pie(75,115,100,145,80,135,50,145); // Левый зрачок

Pie(140,115,165,145,145,135,65,145); // Правый зрачок

B := False; //Глаза смотрят влево

end

else

begin

//Аналогично, если глаза смотрели влево

//Закраска фоном

Pen.Color := clWhite;

Brush.Color := clWhite;

Pie(75,115,100,145,80,135,50,145); // Левый зрачок

Pie(140,115,165,145,145,135,65,145); // Правый зрачок

//Рисуем правые зрачки

Pen.Color := clGreen;

Brush.Color := clGreen;

Pie(85,115,110,145,90,135,60,145); // Левый зрачок

Pie(150,115,175,145,155,135,75,145); // Правый зрачок

B := True; //Глаза смотрят вправо

end;

end;

  • программа завершена!

  1. Запустить программу – <F9>.