Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab4.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
343 Кб
Скачать
☆

Координати точок поверхні форми (полотна)

Приклад функцій малювання олімпійського прапора

// полотнище прапора

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 — розмір еліпса, одна чверть якого використовується для викреслювання кута, що округляє .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]