- •Методичні вказівки для допомоги студентам у вивченні самостійних тем з предмету
- •Урок № 6
- •Особливості інтегрованого середовища програмування Turbo Pascal. Основні пункти меню
- •Урок № 13
- •Поняття рекурсії. Зовнішні оголошення та оголошення процедур та функцій з випередженням
- •Урок № 14
- •Особливості роботи в текстовому режимі
- •Урок № 20
- •Сортування масиву. Методи сортування масиву
- •Урок № 21
- •Рекурсивне сортування масиву методом вибору
- •Урок № 21
- •Алгоритми роботи з двомірними таблицями на мові програмування Pascal
- •Урок № 25
- •Приклади опису багатомірних масивів засобами мови програмування Pascal
- •Урок № 26
- •Робота з елементами двомірного масиву
- •Урок № 27
- •Записи. Види записів. Робота з записами
- •Урок № 30
- •Множини. Дії над множинами
- •Урок № 32
- •Запис/читання файлу. Маніпуляції вмістом файлу
- •Урок № 33
- •Типізовані файли. Текстові файли. Нетипізовані файли
- •Урок № 37
- •Динамічні данні без внутрішніх посилань
- •Урок № 42
- •Робота з кольорами
- •Урок № 43
- •Робота з координатами
- •Урок № 44
- •Принцип виведення точки та лінії на екран
- •Урок № 45
- •Принцип побудови не заповнених геометричних фігур
- •Урок № 46
- •Принцип побудови заповнених геометричних фігур
- •Урок № 47
- •Виведення тексту в графічному режимі
- •Урок № 50
- •Використання модуля mouse Питання для вивчення:
- •Урок № 51
- •Принципи побудови графічного зображення, що рухається
- •Урок № 52
- •Модуль Graphs3d
Урок № 46
(згідно робочої навчальної програми)
Принцип побудови заповнених геометричних фігур
Питання для вивчення:
1. Процедури для побудови зафарбованих кіл та еліпсів.
Процедура Bar (Xl, Yl, X2, Y2: integer); дозволяє будувати більш ефектні прямокутники. Вона малює прямокутник, внутрішня область якого залита по поточному шаблоном. Зазвичай використовується в діловій графіці для побудови стовпчикових діаграм, а також для "зафарбовування" графічного вікна, щоб фон графічного вікна не зливався із загальним фоном екрану.
Розглянемо, як виробляти «заливання» замкнутих областей екрану за допомогою різних візерунків, тобто як вибрати візерунок (шаблон) і колір заповнення фігури. Комбінацію візерунок-колір прийнято називати стилем заповнення.
Процедура SetFillStyle (<шаблон>: word; <колір>: word); встановлює шаблон і колір заповнення замкнутої фігури.
Процедура FloodFill (X, Y: integer; Border: word); заповнює обмежену область поточним кольором і стилем заповнення (SetFillStyle). Кордон закрашується області висвічується кольором, заданим в Border.
Якщо точка (X, Y) знаходиться всередині області, то ця область зафарбовується, якщо ж вона розташована поза області, то заповнюється зовнішня частина області.
Приклад Dom.
program dom;
uses graph;
var
grDriver: integer;
grMode: integer;
begin
grDriver: = Detect;
InitGraph (grDriver, grMode,'');
{Зміна кольору фону}
setbkcolor (14);
{Зміна кольору лінії}
SetColor (5);
{Малювання прямокутників}
rectangle (25,75,100,150);
rectangle (100,75,225,150);
rectangle (50,100,75,150);
rectangle (150,100,175,125);
{Малювання ліній}
line (25,75,75,25);
line (75,25,100,75);
line (200,25,225,75);
line (75,25,200,25);
readln;
end.
Процедура FillEllipse (X, Y: integer; Rx, Ry: word); будує повний зафарбований еліпсю.
Процедура Circle (X, Y: integer; R: word); виводить на екран зображення кола з центром (X, Y) і радіусом R. Окружність малюється кольором, заданим SetColor.
Процедура PieSlice (X, Y: integer; al, n2, R: word); виводить на екран зображення зафарбованого сектора кола, використовуючи і якості центру кола точку (X, Y), початковий кут al, кінцевий кут a2 і радіус R. Контур сектора висвічується поточним кольором. При заповненні сектора використовуються шаблон і колір, встановлені процедурою SetFillStyle. Якщо al = 0 °, а а2 = 360 °, то на екран виводиться зафарбована окружність.
Процедура Sector (X, Y: integer; al, a2, Rx; Ry: word); будує зафарбований сектор еліпса.
Приклад Машіна
PROGRAM MASHINA;
Uses graph;
Var
grdriver: integer;
grmode: integer;
begin;
grdriver: = detect;
Initgraph (grdriver, grmode, 'c');
rectangle (120,90,160,120);
setcolor (7);
rectangle (160,120,240,160);
setcolor (8);
line (120,120,70,120);
line (70,120,80,160);
line (80,160,160,160);
setcolor (2);
circle (110,160,25);
setcolor (5);
circle (200,160,25);
setcolor (5);
line (50,80,20,120);
line (20,120,80,120);
line (80,120,50,80);
line (50,120,20,160);
line (20,160,80,160);
line (80,160,50,120);
readln
End.
Питання для контролю вивченого матеріалу:
Опрацюйте матеріал та приклади.
Розробіть власну програму виведення зафарбованих графічних примітивів.
Література:
Меженний О.А.Turbo Pascal: М: Издательский дом «Вильямс», 2006. – 336 с., стор. 230-235
