Скачать презентацию Графіка в Паскалі Графічні функції Паскаля описані Скачать презентацию Графіка в Паскалі Графічні функції Паскаля описані

Grafika.ppt

  • Количество слайдов: 30

Графіка в Паскалі Графіка в Паскалі

Графічні функції Паскаля описані в модулі GRAPH. Модуль підключається до програми за допомогою ключового Графічні функції Паскаля описані в модулі GRAPH. Модуль підключається до програми за допомогою ключового слова USES. Приклад: program t 34; Uses graph; Var. . .

Основні процедури й функції модуля GRAPH. Процедура Init. Graph ініціює переведення відеоадаптера у відеорежим. Основні процедури й функції модуля GRAPH. Процедура Init. Graph ініціює переведення відеоадаптера у відеорежим. Загальний вигляд: Init. Graph(Driver, Mode, Path); Driver - параметр, що визначає графічний драйвер. Mode - параметр, що задає один із графічних режимів. Path - ім'я файлу й шлях графічного драйвера. Вказувати треба тільки шлях.

Процедура Detect. Graph - тестує апаратуру й визначає, який графічний драйвер і режим (максимально Процедура Detect. Graph - тестує апаратуру й визначає, який графічний драйвер і режим (максимально припустимі) підходять для даного відеоадаптера. Загальний вигляд: Detect. Graph (Driver, Mode); Driver - параметр, що визначає тип графічного драйвера, який найбільше підходить. Mode - параметр, що задає один із графічних режимів, підтримуваних даним драйвером.

Функція Graph. Result - повертає код помилки графічної операції, що виконувалася останньою (‘ 0’ Функція Graph. Result - повертає код помилки графічної операції, що виконувалася останньою (‘ 0’ - без помилок). Загальний вигляд: Grapg. Result;

Приклад Program gr; USES GRAPH; VAR h, k, i: INTEGER; BEGIN Detect. Grahp(k, i); Приклад Program gr; USES GRAPH; VAR h, k, i: INTEGER; BEGIN Detect. Grahp(k, i); Init. Graph(k, l, 'd: tp 7bgi'); h: =Graph. Result; If h=0 then write('OK') else. Write('Error'); END.

Процедура Set. Graph. Mode - встановлює для використовуваного драйвера новий графічний режим і очищає Процедура Set. Graph. Mode - встановлює для використовуваного драйвера новий графічний режим і очищає екран. Переходить в один з доступних режимів для даного драйвера (на відміну від Init. Graph). Загальний вигляд: Set. Graph. Mode(Mode); Mode - ціле число від 0 до 5, що визначає режим.

 Процедура Close. Graph - відновлює відеорежим (текстовий), що використовувався до переходу в графічний Процедура Close. Graph - відновлює відеорежим (текстовий), що використовувався до переходу в графічний режим, звільняє пам'ять від графічних буферів і драйвера.

Робота із зображеннями. Процедура Set. Color - встановлює колір майбутнього зображення. Кольори задають числами Робота із зображеннями. Процедура Set. Color - встановлює колір майбутнього зображення. Кольори задають числами або англійськими назвами. Загальний вигляд: Set. Color(Color); змінна Color має тип word. Приклади: Set. Color(2); Set. Color(RED);

Функція Get. Color - повертає код поточного кольору - значення типу Word. Приклад: … Функція Get. Color - повертає код поточного кольору - значення типу Word. Приклад: … I: =Get. Color; …. Процедура Set. Bk. Color - встановлює кольори тла з палітри. Встановлюється для всього екрана.

Загальний вигляд: Set. Bk. Color(Color); Color - значення типу Word - новий колір тла. Загальний вигляд: Set. Bk. Color(Color); Color - значення типу Word - новий колір тла. Приклад: Set. Bk. Color(RED) Set. Bk. Color(4). Функція Get. Bk. Color - повертає значення типу Word - код використовуваного тла.

Функції Get. X і Get. Y - повертають координати по горизонталі (Х) і вертикалі Функції Get. X і Get. Y - повертають координати по горизонталі (Х) і вертикалі (Y) покажчика поточної позиції. Координати Get. X і Get. Y відлічуються від лівого верхнього кута екрана (активного вікна), починаючи з нуля. Функції Get. Max. X і Get. Max. Y - повертають поточні значення (типу Integer) роздільної здатності, тобто кількість точок (пікселів) по осях Х і Y. Ці значення залежать від обраного драйвера й роздільної здатності.

Процедура Move. To - переміщає покажчик поточної позиції в точку із заданими координатами. Загальний Процедура Move. To - переміщає покажчик поточної позиції в точку із заданими координатами. Загальний вигляд: Move. To(x, y); x і y - координати точки на екрані, куди буде переміщений покажчик. Приклад. . Move. To(10, 30); . . .

Процедура Move. Rel - переміщає покажчик на задану відстань, обумовлену приростом координат Х и Процедура Move. Rel - переміщає покажчик на задану відстань, обумовлену приростом координат Х и Y, щодо його поточного місця розташування. Загальний вигляд: Move. Rel(Dx, Dy); Приклад: нехай покажчик перебуває в точці (10, 44). Move. Rel(5, 8); (перемістить покажчик у точку (15, 52)); Move. Rel(-10, -2): (перемістить покажчик з точки (15, 52) у точку (5, 50)).

Процедура Line - відображає пряму лінію між двома точками, координати яких задані як параметри. Процедура Line - відображає пряму лінію між двома точками, координати яких задані як параметри. Загальний вид: Line(x 1, y 1, x 2, y 2); Змінні x 1, x 2, y 1, y 2 мають тип Integer.

Приклад: Var x 1, x 2, y 1, y 2: integer; . . . Приклад: Var x 1, x 2, y 1, y 2: integer; . . . Line(0, 0, 50, 67). . . або x 1: =56; y 1: =78; x 2: =1, y 2: =100; Line(x 1, y 1, x 2, y 2); : . . .

Процедура Line. To - проводить пряму від поточного положення покажчика до точки заданої координатами. Процедура Line. To - проводить пряму від поточного положення покажчика до точки заданої координатами. Загальний видгляд: Line. To(X, Y); X і Y - координати точки. Процедура Line. Rel - відображає пряму від поточної позиції й до точки, координати якої отримані приростом по Х и Y. Загальний вигляд: Line. Rel(Dx, Dy);

Dx, Dy - прирости по Х і Y (тип Integer). Приклад: нехай покажчик перебуває Dx, Dy - прирости по Х і Y (тип Integer). Приклад: нехай покажчик перебуває в точці (45, 17). Line. Rel(40, 40); (проведе пряму із точки з координатами (45, 17) до точки з координатами (85, 57)). Функція Get. Pixel - повертає значення типу Word, що відповідає кольору пікселя, координати якого (X, Y). Загальний вигляд: Get. Pixel(X, Y);

Приклад: Var I: Word; . . . I: =Get. Pixel(45, 45); Процедура Put. Pixel Приклад: Var I: Word; . . . I: =Get. Pixel(45, 45); Процедура Put. Pixel - відображає точку в заданій позиції й заданому кольорі. Загальний вигляд: Put. Pixel(x, y, color); X, Y - координати точки (тип Integer); Color - її колір (типу Word). Приклад: Put. Pixel(23, 45, 4);

Процедура Circle - викреслює коло. Загальний вигляд: Circle(x, y, Rad); X, Y - координата Процедура Circle - викреслює коло. Загальний вигляд: Circle(x, y, Rad); X, Y - координата точки; Rad - радіус кола. Приклад: Circle(45, 67, 50); Процедура Ellipse - викреслює еліпс. Загальний вигляд: Ellipse(X, Y, BAngle, Eangle, XRad, YRad); X, Y - координати центру; Bangle і Eangle - початковий і кінцевий кути дуги;

XRad, Yrad - горизонтальний і вертикальний радіус еліпса. Приклад: Ellipse(200, 50, 56, 30, 20); XRad, Yrad - горизонтальний і вертикальний радіус еліпса. Приклад: Ellipse(200, 50, 56, 30, 20); Процедура Rectangle – викреслює прямокутник на площині. Загальний вигляд: Rectangle (X 1, Y 1, X 2, Y 2: Integer); X 1, Y 1 - координати лівого верхнього кута; X 2, Y 2 - координати правого нижнього кута прямокутника. Приклад: Rectangle (1, 1, 50);

Процедура Bar – викреслює прямокутник, внутрішня область якого залита по шаблону, що використовується на Процедура Bar – викреслює прямокутник, внутрішня область якого залита по шаблону, що використовується на даний момент. Можна використовувати для побудови діаграм. Загальний вигляд: Bar (X 1, Y 1, X 2, Y 2: Integer); X 1, Y 1 - координати лівого верхнього кута; X 2, Y 2 - координати правого нижнього кута прямокутника. Приклад: Bar (1, 1, 50);

Процедура Draw. Poly – дозволяє відображати на екрані дисплея будь-яку ламану, задану сукупністю координат Процедура Draw. Poly – дозволяє відображати на екрані дисплея будь-яку ламану, задану сукупністю координат деякої множини точок. Загальний вигляд: Draw. Poly (Num. Points: Word; Var Poly. Points); Num. Points – кількість точок ламаної; Poly. Points – змінна тип якої може бути довільним. Вона є набором записів, кожний з яких складається з двох полів, що містять координати X і Y чергової точки.

В модулі граф введений такий тип: TYPE Point. Type=record X, Y: integer; End; Множина В модулі граф введений такий тип: TYPE Point. Type=record X, Y: integer; End; Множина вершин точок багатокутника представляється як масив записів типу Point. Type. Приклад: VAR Points: array[1. . 6] of Point. Type; . . .

Begin {Визначення випадкових координат вершин} For i: =1 to 5 do Begin Points[i]. x: Begin {Визначення випадкових координат вершин} For i: =1 to 5 do Begin Points[i]. x: =Random(Getmax. X); Points[i]. y: =Random(Getmax. Y); End; {Зв'язок координат першої і останньої вершин} Points[6]. x: =Points[1]. x; Points[6]. y: =Points[1]. y; Draw. Poly(6, Points); . . .

Процедура Arc - викреслює дугу кола. Загальний вигляд: Arc(x, y, St. Angle, End. Angle, Процедура Arc - викреслює дугу кола. Загальний вигляд: Arc(x, y, St. Angle, End. Angle, Radius); X, Y - координати центру дуги; St. Angle і End. Angle – початковий і кінцевий кути, які відраховуються від горизонтальної осі проти годинникової стрілки; Radius - радіус. Приклад: Arc(50, 0, 45, 5);

Нарисувати фігуру модуль Graph. Program Graphika; Uses Graph; Var Driver, Mode: integer; Xc, Yc: Нарисувати фігуру модуль Graph. Program Graphika; Uses Graph; Var Driver, Mode: integer; Xc, Yc: Word; Begin Driver: =Detect; використовуючи

Init. Graph(Driver, Mode, 'D: TP 7BGI'); If graph. Result<>0 then begin writeln('Error'); Halt(1); end; Init. Graph(Driver, Mode, 'D: TP 7BGI'); If graph. Result<>0 then begin writeln('Error'); Halt(1); end; Xc: =Get. Max. X div 2; Yc: =Get. Max. Y div 2; Circle(0+Xc, Yc-10, 40); Line(0+Xc, Yc-50, 40+Xc, Yc-10); Readln; Close. Graph; end.

Нарисувати фігуру модуль Graph. Program Graphika; Uses Graph; Var Driver, Mode: integer; Xc, Yc: Нарисувати фігуру модуль Graph. Program Graphika; Uses Graph; Var Driver, Mode: integer; Xc, Yc: Word; Begin Driver: =Detect; використовуючи

Init. Graph(Driver, Mode, 'D: TP 7BGI'); If graph. Result<>0 then begin writeln('Error'); Halt(1); end; Init. Graph(Driver, Mode, 'D: TP 7BGI'); If graph. Result<>0 then begin writeln('Error'); Halt(1); end; Xc: =Get. Max. X div 2; Yc: =Get. Max. Y div 2; Ellipse(Xc, Yc, 0, 359, 40, 30); Readln; Close. Graph; end.