Заливка областей зображення
Тепер перейдемо до процедур, безпосередньо реалізують заливку. Є цілий ряд процедур, які малюють графічні фігури і відразу ж заповнюють їх за заданим шаблоном. Перша з них - процедура
Bar (X1, Y1, X2, Y2. Integer)
малює прямокутник, внутрішня область якого залита за поточним шаблоном. Вона зазвичай використовується в діловій графіці для побудови стовпчастих діаграм. Параметри (X1, Y1) і (X2, Y2) - координати верхнього лівого і правого нижнього кутів прямокутника. Ще більш наочне уявлення інформації при малюванні діаграм дозволяє отримати процедура
Bar3D (X1, Y1, X2, Y2. Integer; D3. Word; Top. Boolean)
Вона малює паралелепіпед, лицьова сторона якого заливається за поточним шаблоном, а глибина задається в пікселах параметром D3. Параметр Top задає режим відображення верхньої площині: True - відображати, False - не відображати. Цей параметр необхідний для того, наприклад, щоб можна було малювати стовпці, які стоять один на одному. У модулі Graph визначені дві константи для неї:
Наступні «заповнюють» процедури працюють з секторами кіл і еліпсів. Малювання сектора еліпса, який буде залитий кольором за поточним шаблоном, здійснюється процедурою
Sector (X, Y. Integer;
StartAngle, EndAngle, XRadius, YRadius. Word)
Параметри процедури мають таке ж значення, що і в процедурах Arc, Ellipse (див. Розд. 19.4.3). Для завдання кругового сектора треба задавати YRadius з урахуванням коефіцієнта стиснення:
GetAspectRatio (А, В);
Sector (100, 100, 0, 90, R, R * LongInt (A) div В);
Цього ж ефекту можна досягти, використовуючи процедуру
PieSlice (X, Y. Integer;
StartAngle, EndAngle, Radius. Word)
яка малює сектор кола, площа якого заливається за поточним шаблоном заповнення. Нагадаємо, що окружності будуть дійсно круглими до тих пір, поки не змінений системний коефіцієнт стиснення зображення.
До розглянутих процедур примикає ще одна:
FillEllipse (X, Y. Integer; XRadius, YRadius. Word)
Вона малює еліпс поточним кольором і заповнює його за встановленим шаблоном. Параметри цієї процедури мають такий же зміст, як і параметри описаної в розд. 19.4.3 процедури Ellipse.
Заповнення більш складних геометричних фігур, в тому числі і неправильної форми, проводиться процедурою
FillPoly (NumPoints. Word; VAR PolyPoints)
Її параметри мають таке ж призначення, як і в процедурі DrawPoly (див. Розд. 19.4.4). Єдина відмінність в тому, що координати першої та останньої вершини багатокутника можуть не збігатися. Однак все одно вони будуть з'єднані лінією, і нутро фігури буде залита (рис. 19.23).