Внастоящее время в компьютерном мире существует множество языков программирования

Вид материалаДокументы

Содержание


5.2. Создание программы «графические примитивы»
TextOut(335,85,'(Pixels)'); Brush.Color := clWhite; MoveTo
F12>) и выбрать событие onActivate
Подобный материал:
1   ...   8   9   10   11   12   13   14   15   16

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


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

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

Процесс создания программы происходит по следующему алгоритму:
  1. Запустить Delphi;
  2. Сохранить проект («work5.dpr», «main.pas»);
  3. Настроить вид экрана:
  • Настроить размеры формы: ширину (свойство Width) установить в 600, а высоту (свойство Height) установить в 370;
  • Форма содержит всего два элемента: видимый элемент – кнопка (Button), и для создания мультфильма элемент таймер (Timer). Все остальные элементы создаются программно: изменить заголовок окна: «Графические примитивы» (Caption);
  • Поместить кнопку для программирования выхода (Button, Standard, ): назвать кнопку BQuit (Name);
  • Поместить на форму элемент таймера (Timer, System, ); установить время обращения к этому элементу – 1 раз в секунду (1000 микросекунд), так как значения таймера устанавливаются в микросекундах убедиться, что значение Interval равно 1000;
  1. Форма настроена!
  2. Запрограммировать выход из программы: команда «Close» при нажатии на кнопку BQuit;
  3. Чтобы осуществить прорисовку изображения сразу при запуске программы, нам нужно настроить событие прорисовки окна – onPaint (щелкнуть на форму (Form1), выбрать свойство onPaint, вкладка Events в Object Inspector) щелкнуть на этом событии;
  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>.