Графика в среде программирования
Turbo Pascal
Преподаватель ЕАДК: Неверова И.Ю.
План урока:
- Особенности подключения графического режима в среде программирования Turbo Pascal
- Составление структуры программы
- Расчёт координат для процедур
- Особенности рисования контуром и заливкой цветом
- Рассмотрение образцов программы
Рекомендуемая литература:
И.Г. Семакин, А.П. Шестаков. Основы программирования, с.88-98, 398-409.
Графические возможности языка Turbo Pascal – библиотека Graph
- Подключение графической библиотеки прописывается в программе процедурой:
Uses Graph ;
- Для установки графического режима экрана используется процедура:
InitGraph (Var Driver, Mode: Integer, Path: String);
Путь к графической библиотеке
Режим работы драйвера
Код драйвера
Режимы работы графической программы
- Текстовый режим . Используется для написания программы. Переход из режима текста программы в графический режим выполнения программы осуществляется процедурой RUN или клавишами Ctrl+F9.
- Графический режим. Изображение строится из отдельных точек (пикселей). Режим работы графического драйвера VGAHi соответствует графической сетке 640х480 пикселей, с палитрой из 16 цветов, автоматическим определением типа драйвера и установке графического режима. Выход из программы в режим текста программы клавишей Enter.
Структура программы
Program ricunok ; {заголовок программы}
Uses Graph ; {подключение графической библиотеки}
Var Dr , Md : integer ; {описание переменных драйвера}
Begin {начало тела программы}
Dr := Detect ; {тип драйвера}
InitGraph ( Dr , Md ,‘ C :\ TP 70\ BGI ’); {включение графики с
библиотекой graph }
;
ReadLn ; {задержка программы}
CloseGraph ; {выход из графического режима}
End . {конец программы}
Расчёт координат для процедур вывода геометрических фигур
275
250
150
50
0
X=640
100
125
150
Bar(50,100,150,150)
Fillellipse(250,125,25,25)
Монитор типа VGA
Y=480
Использование графических процедур
Программа, выводящая на экран японский флаг белого цвета с красным кругом в центре
на бирюзовом фоне экрана.
Program Flag;
Uses Graph;
Var Dr, Md: Integer;
Begin
Dr := Detect;
InitGraph (Dr, Md, ‘C:\TP70\BGI’);
ClearViewPort ; {Очистка экрана, для установления фона экрана}
SetBkColor ( Cyan ); {Установка цвета фона экрана бирюзовая}
SetFillStyle (1, 15); {Цвет заполнения прямоугольника по шаблону и цвету}
Bar (10, 10, 410, 210); {Рисование закрашенного прямоугольника по координатам}
SetColor (4); {Установка цвета линий круга}
Circle (210, 110, 30); {Рисование окружности с координатой центра и радиусом}
SetFillStyle (1, 4); {Цвет заполнения круга по шаблону и цвету}
FloodFill (200, 100, 4); {Заполнение цветом замкнутой фигуры вокруг координаты до границ}
ReadLn ; {задержка программы}
CloseGraph ; {выход из графического режима}
End . {конец тела программы}
Программа выводящая на экран блок-схему
Program shema;
uses graph;
var dr,md:integer;
begin dr:=detect;
initgraph(dr,md,'C:\tp70\bgi');
clearviewport;
setbkcolor(7);
setcolor(1);
setlinestyle(0,1,3);
ellipse(320,40,0,360,50,10);
line(320,50,320,70);
line(270,70,390,70); line(390,70,370,100); line(370,100,250,100); line(250,100,270,70); line(320,100,320,120);
rectangle(260,120,380,150);
line(320,150,320,170); line(320,170,400,190); line(400,190,320,210); line(320,210,240,190); line(240,190,320,170);
line(240,190,200,190); line(200,190,200,210);
rectangle(140,210,260,240);
line(200,240,200,260);
rectangle(140,260,260,290);
line(200,290,200,310);
Line(140,310,260,310); Line(260,310,240,340); Line(240,340,120,340); Line(120,340,140,310); line(200,340,200,360);
line(200,360,100,360); line(100,360,100,170); line(100,170,320,170); line(400,190,440,190);
line(440,190,440,380); line(440,380,320,380); line(320,380,320,400);
ellipse(320,410,0,360,50,10);
setcolor(5);
settextstyle(7,0,2);
outtextXY(300,75,’F'); outtextXY(300,125,'N:=0'); outtextXY(292,178,’N
Readln;
closegraph;
end.
Результат выполнения программы
начало
Ввод: F
N : = 0
да
нет
N
N : = N+1
Вывод: N
конец
Написать программу выводящую следующий рисунок
Program paravoz;
uses graph;
var dr,md:integer;
begin dr:=detect;
initgraph(dr,md,'C:\tp70\bgi');
clearviewport;
Setbkcolor(3);
SetFillStyle (1, 2 );
Bar(150,30,250,225);
SetFillStyle (1, 1 );
Bar(180,55,220,115);
SetFillStyle (1, 2 );
Bar(250,120,450,225);
Line(350,65,390,65);
Line(350,65,360,120);
Line(390,65,380,120);
Line(380,120,360,120);
Setcolor(1);
SetFillStyle(1,1);
Sector(420,245,0,360,20,20);
Sector(300,245,0,360,20,20);
Sector(185,245,0,360,20,20);
SetColor(8);
SetFillStyle(1,7);
Sector(400,50,0,360,30,10);
Sector(425,25,0,360,20,10);
Sector(445,5,0,360,10,5);
Readln;
closegraph;
end.
Домашнее задание
В рабочих тетрадях Тема № 4 выполнить задания 1 и 2, по использованию графических процедур.
Таблица основных графических процедур в Приложении 4.