Процедури circle, drawcircle, fillcircle

Привіт, Новомосковсктелі сайту progmatem.ru про програмування на Паскалі. На цій сторінці розглянемо наступні три процедури графічного модуля GraphABC - Circle, DrawCircle, FillCircle, причому останні дві в середовищі PascalABC відсутні. Але про все по порядку, і почнемо з визначення підпрограми Circle (x, y, r).

процедура Circle

✎ procedure Circle (x, y, r: integer);

- Малює заповнену окружність з центром (x, y) і радіусом r

Колір лінії окружності задається за допомогою SetPenColor (c). ширина - SetPenWidth (w). колір області кола - SetBrushColor (c). У PascalABC.Net параметр з має тип Color, в PascalABC - тип ColorType. Ширина, або товщина пера w - ціле позитивне число.

Ось як виглядає це на прикладі:

Код PascalABC, PascalABC.Net

Процедури circle, drawcircle, fillcircle

Важливе зауваження: якщо не встановлювати вручну властивості кордону і області окружності, то задіюються умовчання: колір кордону - чорний, толщірна пера - 1px, колір області - білий.

Код PascalABC, PascalABC.Net

Процедури circle, drawcircle, fillcircle

процедура DrawCircle

✎ procedure DrawCircle (x, y, r: integer);

- Малює коло з центром (x, y) і радіусом r

Відмінність процедури DrawCircle від Circle в тому, що перша малює тільки лінію кола, не заповнюючи внутрішньої частини. Тобто попросту кажучи - окружність порожня всередині. Напишемо простеньку програму.

Процедури circle, drawcircle, fillcircle

Процедури circle, drawcircle, fillcircle

Аналогічний висновок ми зробили на сторінці Процедури DrawPolygon і FillPolygon по відношенню до вказаних підпрограм, де демонстрували використання закрашеного (заповненого) багатокутника Polygon і просто ламаної DrawPolygon. Тут необхідно запам'ятати правило:

✎ Якщо в PascalABC.Net процедура графічного модуля використовується з приставкою Draw. то кисть Brush для зафарбовування області тут не використовується. Це ясно з того, що одне зі значень англійського слова "draw" є "малювати", тобто просто малювати лінію.

процедура FillCircle

Нарешті, підходимо до останньої процедурі FillCircle (.) Цієї групи підпрограм, що відносяться до кола та кола. У чому її відмінність від попередніх Circle і DrawCircle? Англійське слово "fill" означає "заповнювати", тому можна припустити, що дана процедура заповнює (зафарбовує, замальовує) простаранство кола. дійсно:

✎ procedure FillCircle (x, y, r: integer);

- Заповнює внутрішність кола з центром (x, y) і радіусом r

Наведемо приклад з колом зафарбованою в рожевий колір. Ось програма:

Процедури circle, drawcircle, fillcircle

Особливість цієї процедури в тому, що залитий таким чином коло не має кордону. а тому перо Pen використовувати не має сенсу. Дійсно, в наступній програмі встановлюючи товщину і колір пера (5 і 6 рядок коду), бачимо, що жовтий коло все одно залишається без кордону:

Процедури circle, drawcircle, fillcircle

Вобщем, якщо потрібно намалювати коло і відразу його зафарбувати (залити), то використовуємо Circle; якщо інужна окружність, то DrawCircle; якщо зафарбований круг без кордонів, то застосовуємо FillCircle.

div> .uk-panel '> "data-uk-grid-margin>