Процедури 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
Важливе зауваження: якщо не встановлювати вручну властивості кордону і області окружності, то задіюються умовчання: колір кордону - чорний, толщірна пера - 1px, колір області - білий.
Код PascalABC, PascalABC.Net
процедура DrawCircle
✎ procedure DrawCircle (x, y, r: integer);
- Малює коло з центром (x, y) і радіусом r
Відмінність процедури DrawCircle від Circle в тому, що перша малює тільки лінію кола, не заповнюючи внутрішньої частини. Тобто попросту кажучи - окружність порожня всередині. Напишемо простеньку програму.
Аналогічний висновок ми зробили на сторінці Процедури DrawPolygon і FillPolygon по відношенню до вказаних підпрограм, де демонстрували використання закрашеного (заповненого) багатокутника Polygon і просто ламаної DrawPolygon. Тут необхідно запам'ятати правило:
✎ Якщо в PascalABC.Net процедура графічного модуля використовується з приставкою Draw. то кисть Brush для зафарбовування області тут не використовується. Це ясно з того, що одне зі значень англійського слова "draw" є "малювати", тобто просто малювати лінію.
процедура FillCircle
Нарешті, підходимо до останньої процедурі FillCircle (.) Цієї групи підпрограм, що відносяться до кола та кола. У чому її відмінність від попередніх Circle і DrawCircle? Англійське слово "fill" означає "заповнювати", тому можна припустити, що дана процедура заповнює (зафарбовує, замальовує) простаранство кола. дійсно:
✎ procedure FillCircle (x, y, r: integer);
- Заповнює внутрішність кола з центром (x, y) і радіусом r
Наведемо приклад з колом зафарбованою в рожевий колір. Ось програма:
Особливість цієї процедури в тому, що залитий таким чином коло не має кордону. а тому перо Pen використовувати не має сенсу. Дійсно, в наступній програмі встановлюючи товщину і колір пера (5 і 6 рядок коду), бачимо, що жовтий коло все одно залишається без кордону:
Вобщем, якщо потрібно намалювати коло і відразу його зафарбувати (залити), то використовуємо Circle; якщо інужна окружність, то DrawCircle; якщо зафарбований круг без кордонів, то застосовуємо FillCircle.
div> .uk-panel '> "data-uk-grid-margin>