- •1. Теоретичні відомості
- •1.1. Ініціалізація графічного режиму
- •Var gd, gm: integer;
- •InitGraph( gd, gm,’вказується шлях до драйвера, чим докладніше, тим краще’)
- •1.2. Базові процедури і функції.
- •1.3. Екран і вікно в графічному режимі.
- •SetViewPort (x1, y1, x2, y2:integer, Clip:boolean);
- •SetViewPort( 0, 0, GetMaxX, GetMaxY, true);
- •1.4. Виведення найпростіших фігур.
- •1.4.1. Виведення точки.
- •PutPixel (X, у: integer, color:word);
- •Шкала кольорів
- •1.4.2. Виведення лінії.
- •Line (x1, y1, x2,y2 :integer);
- •SetColor(Gyan); Line(1,1,600,1);
- •SetLineStyle(1,0,1); Line(15,15, 150,130);
- •Line(15,15, 150,130);
- •1.5. Побудова багатокутників.
- •1.5.1. Побудова прямокутників.
- •Rectangle (x1, y1, x2, y2:integer ),
- •Bar (x1, y1, x2, y2:integer),
- •Bar3d (x1, y1, x2,y2, d: integer, а:boolean)
- •1. SetColor(Green);
- •2. SetFillStyle(1,3);
- •3. SetFillStyle(1,3);
- •1.5.2. Побудова багатокутників.
- •DrawPoly(а: word, var PolyPoints).
- •Var gd, gm: integer;
- •Xm, ym, xmaxD4, ymaxD4:word;
- •Initgraph(gd, gm, ‘ с/bp’);
- •FillPoly(а: word, var PolyPoints).
- •Initgraph(gd, gm, ‘ с/bp’);
- •1.6. Побудова дуг і кіл.
- •1.7. Робота з текстом.
- •1.7.1. Виведення тексту.
- •OutText(‘натисніть будь-яку клавішу”);
- •OutTextXy(X, у: integer, Textst: string),
- •OutTextXy(60, 100, ‘натисніть будь-яку клавішу”)
- •1.7.2. Виведення чисельних значень.
- •1.7.3. Шрифти.
- •SetTextStyle(Font,d,c:word),
- •Стандартні шрифти
- •1.7.4. Вирівнювання тексту.
- •SetTextJustify(Horiz, Vert : word)
- •1.8. Побудова графіків функцій.
- •1.9. Цикли в графіці. Побудова випадкових процесів.
- •1.10. Створення ілюзії руху.
- •I, i1, i2, i3: real; gd, gm: integer;
- •2. Приклад виконання лабораторного завдання.
- •GetMem(BitMap,Size);
- •Var gd,gm:integer;
- •X,y:integer;
- •InitGraph (gd,gm,'egavga.Bgi');
- •Var gd,gm:integer;
- •VX,Vy,X,y:real;
- •InitGraph (gd,gm,'egavga.Bgi');
- •3. Завдання до виконання лабораторної роботи
- •4. Контрольні запитання
- •Ініціалізація графічного режиму.
- •5. Варіанти завдань
SetColor(Gyan); Line(1,1,600,1);
Для креслення ліній застосовуються ще дві процедури: LineTo і LineRel. Процедура LineTo (x,y: integer) будує лінію з точки поточного положення покажчика в точку з координатами x,y. Процедура LineRel (dx,dy: integer) проводить лінію від точки поточного розташування покажчика (x, у) в точку (x+dx, y+dy).
Турбо Паскаль дозволяє креслення лінії самого різного стилю: тонкі, широкі, штрихові, пунктирні і т.д. Установка стилю проводиться процедурою SetLineStyle(а,b,c: word), де а встановлює тип рядка можливі значення якого приведені в таблиці 7.4; b – зразок, с– товщина лінії, визначувана константами, вказаними в таблиці 7.5. Якщо застосовується один із стандартних стилів, то значення b рівне 0. Якщо користувач хоче активізувати власний стиль, то значення b =4. В цьому випадку користувач сам вказує примітив (зразок), з якого будується лінія.
Наприклад:
SetLineStyle(1,0,1); Line(15,15, 150,130);
або
SetLineStyle(UserBitLn,$5555,ThickWidth);
Line(15,15, 150,130);
Таблиця 7.4
Константа |
Значення |
Опис |
Solidln |
0 |
Безперервна лінія |
Dottedln |
1 |
Лінія з крапок |
Centerln |
2 |
Лінія з крапок і тире |
Dashedln |
3 |
Штрихова лінія |
Userbitln |
4 |
Тип користувача |
Таблиця 7.5
Константа |
Значення |
Опис |
Normwidth |
1 |
Нормальна товщина (1піксель) |
Thickwidth |
3 |
Жирна лінія (3 пікселі) |
Приклад: Написати програму, яка креслить трикутник червоною лінією в центрі екрану.
Program treug;
uses graph; { підключення бібліотеки графічних процедур}
var gd,gm: integer; {опис змінних, визначаючих графічний драйвер і монітор}
begin
gd:=detect; {визначення значень змінних по вибору ПК}
initgraph(gd, gm, ‘ с/bp’); {ініціалізація графічного режиму}
SetColor(4); {задання кольору лінії}
SetLineStyle(1,0,3); {задання стилю лінії}
Line(320, 240, 320, 180);
Line(320, 240, 390, 240);
Line(390, 240, 320, 180);
end.
1.5. Побудова багатокутників.
1.5.1. Побудова прямокутників.
Для побудови прямокутних фігур є декілька процедур.
Перша з них – викреслювання одновимірного прямокутника:
Rectangle (x1, y1, x2, y2:integer ),
де x1, y1 – координати лівого верхнього кута, x2, y2- координати правого нижнього кута прямокутника.
Область всередині прямокутника не зафарбована і співпадає за кольором з фоном.
Більш ефектні для сприйняття прямокутники можна будувати за допомогою процедури
Bar (x1, y1, x2, y2:integer),
яка малює зафарбований прямокутник. Колір зафарбовування встановлюється за допомогою SetFillStyle. Ще одна ефектна процедура:
Bar3d (x1, y1, x2,y2, d: integer, а:boolean)
викреслює тривимірний закрашений прямокутник (паралелепіпед). При цьому використовуються тип і колір зафарбовування, встановлений за допомогою SetFillStyle. Параметр d є числом пікселів, задаючих глибину тривимірного контура. Частіше всього його значення рівне четверті ширини прямокутника (d:=(x2-x1)div4). Параметр а визначає, будувати над прямокутником вершину (а:=True) чи ні (а:=False).
Приклади використовування:
