Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема Graph.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
176 Кб
Скачать
☆

8. Малювання геометричних фігур.

Модуль Graph дозволяє програмувати виведення на екран деяких геометричних фігур. Процедури модуля Graph малюють їх поточним кольором та поточним типом лінії. Для деяких фігур можна задавати зразок і колір зафарбування.

Процедура SetFillStyle(Z : word; Соlоr : word). Встановлює зразок і колір зафарбування для всіх типів зафарбування, виконуваних процедурами FillPoly, Ваr, Bar3D, i PieSlice. Параметр Color задає значення кольору зафарбування і приймає одне з допустимих для поточного режиму значення кольору. Параметр Z задає зразок зафарбування. У модулі Сгарh оголошено декілька констант, які позначають певні зразки зафарбування:

EmptyFill = 0; {заповнити область фоновим кольором}

SolidFill = 1; {заповнення області поточним кольором}

LineFill = 2; {заповнити символами тире}

LtSlashFill = 3; {заповнити символами ///}

SlashFill = 4; {заповнити жирними лініями ///}

BkSlashFill = 5; {заповнити символами \\\ (жирними лініями) }

LtBkSlashFill = 6; { заповнити символами \\\ }

HatchFill = 7; {заповнити рідким штрихуванням }

XHatchFill = 8; {заповнити густим штрихуванням, що пересікається }

InterLeaveFill = 9; {заповнити переривчастою лінією}

WideDotFill = 10; {заповнити рідкими точками}

CloseDotFill = 11; {заповнити густими точками}

Процедурою SetFillPattern програміст може створювати свої зразки зафарбування, формуючи спеціальний шаблон. За замовчуванням вибирається суцільне зафарбування білим кольором.

Приклад:

SetFіllStyle(SolidFill,0);

Ваr(хl, у1, х2, у2);

SetFіllStyle(XHatchFіll,0);

Ваr(х1, у1, х2, у2);

Процедура Ваr(х1, у1, х2, у2 : integer). Малює зафарбований стовпець з координатами х1, у1- лівий нижній кут, та х2, у2 - правий верхній кут, використовуючи зразок зафарбування і колір зафарбування, задані процедурами SetFillStyle і SеtFillPаttеrn.

Процедура Ваr3D(х1, у1, х2, у2: integer; g : word; t : Boolean). Малює тривимірний паралелепіпед, використовуючи зразок зафарбування і колір зафарбування, задані за допомогою процедур SеtFillStylе і SetFillPattern. Тривимірний контур паралелепіпеда малюється кольором і типом лінії, встановленими процедурами SetColor і SetLineStyle. Параметр g задає глибину тривимірного контуру в пікселях. Якщо параметр t приймає значення True, то для паралелепіпеда малюється тривимірна вершина, у протилежному випадку вершина не малюється, що дозволяє малювати кілька паралелепіпедів, розташованих один на одному.

Процедура Circle(X,Y : integer; R : word). Малює коло радіусу R з центром в точці з координатами (Х,У). Коло малюється поточним кольором, встановленим процедурою SetColor.

Процедура Arc(X,Y:integer; КІ, К2, R:word). Малює дугу кола з центром (Х,У) і радіусом R. Дуга малюється від значення початкового кута К1 (в градусах) до кінцевого кута К2 поточним кольором. Початковий кут, рівний 0 і кінцевий кут, рівний 359, задають повне коло.

Процедура DrawPoly(N : word; var Koord). Використовуючи поточний тип прямої і поточний колір, малює контур багатокутника. Параметр Koord є нетипований параметр, що містить координати кожної вершини багатокутника. Параметр N задає кількість пар координат вершин у параметр і Koord. Пара координат складається з двох слів (word): значення х і значення у. Для накреслення замкнутої фігури з n вершинами потрібно передати при звертанні до процедури DrawPoly n+1 координату, де координата вершини з номером n+1 буде дорівнювати координаті вершини з номером 1.

Процедура FillPoly(N : word; var Koord). Малює і зафарбовує багатокутник, використовуючи поточний стиль зафарбування і колір зафарбування, що задаються процедурами SеtFillStylе і SеtFillРаttеrn. При кресленні контуру 6агатокутника використовується поточний тип лінії, що встановлюються процедурою SetLineStyle і поточний колір. Параметри N i Koord ті ж, що й у процедурі DrawPoly.

Процедура Еlliрsе(Х, У : integer; К1, К2 : word; Rx, Ry : word). Малює дугу еліпса від початкового кута К1 до кінцевого кута К2, заданих у градусах, з центром в точці (Х,У). Параметри Rx та Ry задають довжини горизонтальної і вертикальної осі. Дуга малюється поточним кольором. Якщо значення початкового кута рівне 0, а кінцевого кута рівне 359, то еліпс малюється повністю. Кути для процедур Аrс, Ellipse і PieSlice задаються проти напрямку годинної стрілки. При цьому значення 0 відповідає положенню годинникової стрілки, що вказує на 3-тю годину, 90 градусів - 12-ту годину тощо.

Процедура PieSlice(x, у : integer; К1, К2, R : word). Малює і зафарбовує кольором сектор кола з центром в (Х, У) і радіусом R. Сектор малюється від початкового кута К1 до кінцевого кута К2. Контур сектора малюється поточним кольором, а при зафарбовуванні використовуються тип і колір зафарбування, задані процедурами SеtFillStylе і SеtFillРаttеrn. Початковий кут, рівний 0 і кінцевий кут, рівний 359, задають повний круг.

Процедура Rectangle(x1, у1, х2, у2 : integer). Малює прямокутник. Точка з координатами (х1, у1) задає верхній лівий кут, (х2, у2) - задає правий нижній кут. Використовує поточний тип лінії, що встановлюються процедурою SetLineStyle і поточний колір.

Процедура Sector(x, у : integer; Кl, К2, Rx, Ry: word). Малює і зафарбовує сектор еліпса з центром (Х,У), горизонтальним і вертикальним радіусами Rx і Ry від початкового кута К1 до кінцевого кута К2. Сектор малюється поточним кольором і зафарбовується з використанням зразка зафарбовування і кольору, заданих за допомогою процедур SеtFillStylе чи SеtFillРаttеrn. Якщо задано початковий кут 0 і кінцевий кут 360, то еліпс буде намальований і зафарбований повністю. Кути для процедур Arc, Ellipse, FillEllipse, PieSlice задаються проти годинникової стрілки, Значення 0 відповідає положенню годинникової стрілки, що вказує на 3-тю годину, 90 градусів - 12-ту годину і т.д.