Слайд 2 Графічні функції Паскаля описані в модулі GRAPH.
Модуль підключається до
програми за допомогою ключового слова USES.
Приклад:
program t34;
Uses
graph;
Var ...
...
Слайд 3Основні процедури й функції модуля GRAPH.
Процедура InitGraph ініціює переведення відеоадаптера
у відеорежим.
Загальний вигляд:
InitGraph(Driver,Mode,Path);
Driver - параметр, що визначає графічний драйвер.
Mode
- параметр, що задає один із графічних режимів.
Path - ім'я файлу й шлях графічного драйвера. Вказувати треба тільки шлях.
Слайд 4 Процедура DetectGraph - тестує апаратуру й визначає, який графічний драйвер
і режим (максимально припустимі) підходять для даного відеоадаптера. Загальний вигляд:
DetectGraph (Driver,Mode);
Driver - параметр, що визначає тип графічного драйвера, який найбільше підходить.
Mode - параметр, що задає один із графічних режимів, підтримуваних даним драйвером.
Слайд 5 Функція GraphResult - повертає код помилки графічної операції, що виконувалася
останньою (‘0’ - без помилок).
Загальний вигляд:
GraphResult;
Слайд 6Приклад
Program gr;
USES GRAPH;
VAR h,k,i: INTEGER;
BEGIN
DetectGrahp(k,i);
InitGraph(k,l,'d:\tp7\bgi\');
h:=GraphResult;
If h=0 then write('OK') elseWrite('Error');
END.
Слайд 7 Процедура SetGraphMode - встановлює для використовуваного драйвера новий графічний режим
і очищає екран. Переходить в один з доступних режимів для
даного драйвера (на відміну від InitGraph). Загальний вигляд:
SetGraphMode(Mode);
Mode - ціле число від 0 до 5, що визначає режим.
Слайд 8 Процедура CloseGraph - відновлює відеорежим (текстовий), що використовувався до
переходу в графічний режим, звільняє пам'ять від графічних буферів і
драйвера.
Слайд 9Робота із зображеннями.
Процедура SetColor - встановлює колір майбутнього зображення. Кольори
задають числами або англійськими назвами.
Загальний вигляд:
SetColor(Color);
змінна Color має тип
word.
Приклади:
SetColor(2);
SetColor(RED);
Слайд 10 Функція GetColor - повертає код поточного кольору - значення типу
Word.
Приклад:
…
I:=GetColor;
….
Процедура SetBkColor - встановлює кольори
тла з палітри. Встановлюється для всього екрана.
Слайд 11Загальний вигляд:
SetBkColor(Color);
Color - значення типу Word - новий колір
тла.
Приклад:
SetBkColor(RED)
SetBkColor(4).
Функція GetBkColor - повертає значення типу Word
- код використовуваного тла.
Слайд 12 Функції GetX і GetY - повертають координати по горизонталі (Х)
і вертикалі (Y) покажчика поточної позиції. Координати GetX і GetY
відлічуються від лівого верхнього кута екрана (активного вікна), починаючи з нуля.
Функції GetMaxX і GetMaxY - повертають поточні значення (типу Integer) роздільної здатності, тобто кількість точок (пікселів) по осях Х і Y. Ці значення залежать від обраного драйвера й роздільної здатності.
Слайд 13 Процедура MoveTo - переміщає покажчик поточної позиції в точку із
заданими координатами.
Загальний вигляд:
MoveTo(x,y);
x і y - координати точки на
екрані, куди буде переміщений покажчик.
Приклад.
...
MoveTo(10,30);
...
Слайд 14 Процедура MoveRel - переміщає покажчик на задану відстань, обумовлену приростом
координат Х и Y, щодо його поточного місця розташування.
Загальний вигляд:
MoveRel(Dx,Dy);
Приклад:
нехай покажчик перебуває в точці (10,44).
MoveRel(5,8);(перемістить покажчик у точку (15,52));
MoveRel(-10,-2):(перемістить покажчик з точки (15,52) у точку (5,50)).
Слайд 15 Процедура Line - відображає пряму лінію між двома точками, координати
яких задані як параметри.
Загальний вид:
Line(x1,y1,x2,y2);
Змінні x1,x2,y1,y2 мають тип
Integer.
Слайд 16Приклад:
Var x1,x2,y1,y2: integer;
...
Line(0,0,50,67)
...
або
x1:=56;y1:=78;x2:=1,y2:=100;
Line(x1,y1,x2,y2);:
...
Слайд 17 Процедура LineTo - проводить пряму від поточного положення покажчика до
точки заданої координатами.
Загальний видгляд:
LineTo(X,Y);
X і Y - координати точки.
Процедура LineRel - відображає пряму від поточної позиції й до точки, координати якої отримані приростом по Х и Y.
Загальний вигляд:
LineRel(Dx,Dy);
Слайд 18Dx,Dy - прирости по Х і Y (тип Integer).
Приклад: нехай
покажчик перебуває в точці (45,17).
LineRel(40,40);(проведе пряму із точки з
координатами (45,17) до точки з координатами (85,57)).
Функція GetPixel - повертає значення типу Word, що відповідає кольору пікселя, координати якого (X,Y).
Загальний вигляд:
GetPixel(X,Y);
Слайд 19Приклад:
Var I:Word;
...
I:=GetPixel(45,45);
Процедура PutPixel - відображає точку в заданій позиції й
заданому кольорі.
Загальний вигляд:
PutPixel(x,y,color);
X,Y - координати точки (тип Integer);
Color - її
колір (типу Word).
Приклад: PutPixel(23,45,4);
Слайд 20Процедура Circle - викреслює коло.
Загальний вигляд:
Circle(x,y,Rad);
X,Y - координата
точки; Rad - радіус кола.
Приклад: Circle(45,67,50);
Процедура
Ellipse - викреслює еліпс.
Загальний вигляд:
Ellipse(X,Y,BAngle,Eangle,XRad,YRad);
X,Y - координати центру; Bangle і Eangle - початковий і кінцевий кути дуги;
Слайд 21XRad,Yrad - горизонтальний і вертикальний радіус еліпса.
Приклад: Ellipse(200,200,50,56,30,20);
Процедура Rectangle
– викреслює прямокутник на площині.
Загальний вигляд:
Rectangle (X1,Y1, X2,Y2: Integer);
X1,Y1
- координати лівого верхнього кута; X2,Y2 - координати правого нижнього кута прямокутника.
Приклад: Rectangle (1,1,50,50);
Слайд 22Процедура Bar – викреслює прямокутник, внутрішня область якого залита по
шаблону, що використовується на даний момент. Можна використовувати для побудови
діаграм.
Загальний вигляд:
Bar (X1,Y1, X2,Y2: Integer);
X1,Y1 - координати лівого верхнього кута; X2,Y2 - координати правого нижнього кута прямокутника.
Приклад: Bar (1,1,50,50);
Слайд 23Процедура DrawPoly – дозволяє відображати на екрані дисплея будь-яку ламану,
задану сукупністю координат деякої множини точок.
Загальний вигляд:
DrawPoly (NumPoints: Word;
Var PolyPoints);
NumPoints – кількість точок ламаної; PolyPoints – змінна тип якої може бути довільним. Вона є набором записів, кожний з яких складається з двох полів, що містять координати X і Y чергової точки.
Слайд 24В модулі граф введений такий тип:
TYPE
PointType=record
X,Y:integer;
End;
Множина вершин точок багатокутника представляється
як масив записів типу PointType.
Приклад:
VAR Points:array[1..6] of PointType;
...
Слайд 25Begin
{Визначення випадкових координат вершин}
For i:=1 to 5 do
Begin
Points[i].x:=Random(GetmaxX);
Points[i].y:=Random(GetmaxY);
End;
{Зв'язок координат
першої і останньої вершин}
Points[6].x:=Points[1].x;
Points[6].y:=Points[1].y;
DrawPoly(6,Points);
...
Слайд 26Процедура Arc - викреслює дугу кола.
Загальний вигляд:
Arc(x,y,StAngle,EndAngle,Radius);
X,Y -
координати центру дуги; StAngle і EndAngle – початковий і кінцевий
кути, які відраховуються від горизонтальної осі проти годинникової стрілки; Radius - радіус.
Приклад: Arc(50,50,0,45,5);
Слайд 27Нарисувати фігуру використовуючи модуль Graph.
Program Graphika;
Uses Graph;
Var Driver,Mode:integer;
Xc,Yc:Word;
Begin
Driver:=Detect;
Слайд 28InitGraph(Driver,Mode,'D:\TP7\BGI');
If graphResult0 then begin writeln('Error');Halt(1); end;
Xc:=GetMaxX div 2;
Yc:=GetMaxY div 2;
Circle(0+Xc,Yc-10,40);
Line(0+Xc,Yc-50,40+Xc,Yc-10);
Readln;
CloseGraph;
end.
Слайд 29Нарисувати фігуру використовуючи модуль Graph.
Program Graphika;
Uses Graph;
Var Driver,Mode:integer;
Xc,Yc:Word;
Begin
Driver:=Detect;
Слайд 30InitGraph(Driver,Mode,'D:\TP7\BGI');
If graphResult0 then begin writeln('Error');Halt(1); end;
Xc:=GetMaxX div 2;
Yc:=GetMaxY div 2;
Ellipse(Xc,Yc,0,359,40,30);
Readln;
CloseGraph;
end.