- •Основнi теоретичнi вiдомостi
- •Координати точок поверхні форми (полотна)
- •Прямокутник
- •Метод Roundrec викреслює прямокутник з кутами, що округляють
- •Коло і еліпс
- •Значення параметрів методу Ellipse визначають вид геометричної фігури
- •Виведення тексту
- •Ілюстрації
- •Значок компоненту Image
- •Варіанти виконання завдання
Координати точок поверхні форми (полотна)
Приклад функцій малювання олімпійського прапора
// полотнище прапора
Canvas->pen->width = 1;
Canvas->pen->color = clblack;
Canvas->brush->color = clcream;
Canvas->rectangle(30,30,150,150);
Canvas->pen->width =2; // ширина кілець
Canvas->brush->style = bsclear; // щоб круг, намальований
// методом Ellipse, не був закрашений
// малюємо кільця
Canvas->pen->color = clblue; Canvas->ellipse(40,40,80,80);
Canvas->pen->color = clblack; Canvas->ellipse(70,40,110,80);
Canvas->pen->color = clred; Canvas->ellipse(100,40,140,80);
Canvas->pen->color = clyellow; Canvas->ellipse(55,65,95,105);
Canvas->pen->color = clgreen; Canvas->ellipse(85,65,125,105);
Будь-яка картинка, креслення або схема можуть розглядатися як сукупність графічних примітивів: крапок, ліній, кіл, дуг і ін. Таким чином, для того, щоб на екрані з'явилася потрібна картинка, програма повинна забезпечити викреслювання (вивід) графічних елементів — примітивів, складових цю картинку.
Викреслювання графічних примітивів на поверхні (форми або компоненту image — області виведення ілюстрації) здійснюється застосуванням відповідних методів до властивості canvas цій поверхні.
Викреслювання прямої лінії виконує метод Lineto. Метод малює лінію з тієї крапки, в якій в даний момент знаходиться олівець (ця крапка називається поточною позицією олівця або просто "поточною"), в крапку, координати якої вказані в інструкції виклику методу. Наприклад, оператор
Canvas->lineto(100,200)
малює лінію в крапку з координатами (100, 200), після чого поточною стає крапка з координатами (100, 200).
Початкову точку лінії можна задати, перемістивши олівець в потрібну точку графічної поверхні. Зробити це можна за допомогою методу Moveto вказавши як параметри координати точки почала лінії. Наприклад, оператори
Canvas->moveto(10,10); // встановити олівець в крапку (10,10)
Canvas->lineto(50,10); // лінія з крапки (10,10) в крапку (50,10)
Метод Polyline викреслює ламану лінію. Як параметри методу передається масив типу Tpointщо містить координати вузлових точок лінії, і кількість ланок лінії. Метод Polyline викреслює ламану лінію, послідовно сполучаючи крапки, координати яких знаходяться в масиві: першу з другою, другу з третьою, третю з четвертою і так далі
Наприклад, приведений нижче фрагмент коди малює ламану лінію, що складається з трьох ланок.
Tpoint p[4]; // координати почала, кінця і точок перегину
# задати координати точок ламаної
р[0].х = 100; р[0].у = 100; // почало
р[1].х = 100; р[1].у = 150; // точка перегину
р[2].х = 150; р[2].у = 150; // точка перегину
р[3].х = 150; р[3].у = 100; // кінець
Canvas->polyline(p,3}; // ламана з трьох ланок
Метод Polyline можна використовувати для викреслювання замкнутих контурів. Для цього треба, щоб перший і останній елементи масиву містили координати однієї і тієї ж точки.
Прямокутник
Метод Rectangle викреслює прямокутник. У інструкції виклику методу треба вказати координати двох крапок — кутів прямокутника. Наприклад, оператор
Canvas->rectangle(10,10,50,50)
малює квадрат, лівий верхній кут якого знаходиться в крапці (10, 10), а правий ніжній в крапці (50, 50).
Колір, вигляд і ширину лінії контура прямокутника визначають значення властивості Реnа колір і стиль запівки області усередині прямокутника — значення властивості Brush тій поверхні, на якій метод малює прямокутник. Наприклад, наступні оператори малюють прапор України.
Canvas->brush->color = clYeloy; // колір кисті — білий
Canvas->rectangle(10,10,90,40);
Canvas->brush->color = clblue; // колір кисті — синій
Canvas->rectangle(10,40,90,70);
Замість чотирьох параметрів — координат двох діагональних кутів прямокутника — методу Rectangle можна передати один параметр — структуру типу Trect поля якої визначають положення діагональних кутів прямокутної області. Наступний фрагмент коди демонструє використання структури Trect Як параметр методу Rectangle.
Trect ret; // прямокутна область
ret.Top = 10;
ret.Left = 10;
ret.Bottom = 50;
ret.Right = 50;
Canvas->rectangle(ret); // намалювати прямокутник
Є ще два методи, які викреслюють прямокутник. Метод Fillrect викреслює закрашений прямокутник, використовуючи як інструмент тільки кисть (Brush), а метод Framerect — тільки контур і використовує тільки олівець (Ріпи). У цих методів тільки один параметр — структура типу Trect. Поля структури Trect містять координати прямокутної області. Значення полів структури Trect можна задати за допомогою функції Rect.
Наприклад:
Trect ret; // область, яку треба закрасити
ret = Rect(10,10,30,50); // координати області
Canvas->brush->color = clred; // колір зафарбовування
Canvas->fillrect(ret);
Метод Roundrec викреслює прямокутник з кутами, що округляють. Інструкція виклику методу Roundrec у загальному вигляді виглядає так:
Canvas->roundrec(xl,yl,x2,у2,хз,уз)
Параметри x1, y1, x2, y2 визначають положення кутів прямокутника, а параметри х3 і у3 — розмір еліпса, одна чверть якого використовується для викреслювання кута, що округляє .
