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

Метод Roundrec викреслює прямокутник з кутами, що округляють

Багатокутник

Метод Polygon викреслює багатокутник. Інструкція виклику методу в загальному вигляді виглядає так:

Canvas->polygon(p,n)

де р — масив записів типу Tpoint який містить координати вершин багатокутника; n — кількість вершин.

Метод Polygon креслить багатокутник, сполучаючи прямими лініями крапки, координати яких знаходяться в масиві: першу з другою, другу з третьою, третю з четвертою і так далі Вид межі багатокутника визначають значення властивості Ріпи, а вид заливки області, обмеженою лінією межі, — значення властивості Brush тій поверхні, на якій метод малює.

Нижче приведений фрагмент коди, яка, використовуючи метод Polygon малює ромб.

Tpoint p[4]; // чотири вершини

// координати вершин

р[0].х = 50; р[0].у = 100;

р[1].х = 150; р[1].у = 75;

р[2].х = 250; р[2].у = 100;

р[3].х = 150; р[3].у = 125;

Canvas->brush->color = clred;

Canvas->polygon(p,3);

Коло і еліпс

Намалювати еліпс або коло (окремий випадок еліпса) можна за допомогою методу Ellipse. Інструкція виклику методу в загальному вигляді виглядає таким чином:

Canvas->ellipse(xl,yl,x2,у2)

Параметри x1, y1, x2, y2 визначають координати прямокутника, усередині якого викреслюється еліпс або, якщо прямокутник є квадратом, — коло.

Значення параметрів методу Ellipse визначають вид геометричної фігури

Замість чотирьох параметрів — координат діагональних кутів прямокутника — методу Ellipse можна передати один — об'єкт типу Trect. Наступний фрагмент коди демонструє використання об'єкту Trect як параметр методу Ellipse.

Trect rec = Rect(10,10,50,50);

Canvas->ellipse(rec);

Як і у разі викреслювання інших примітивів, вид контура еліпса (колір, товщину і стиль лінії) визначають значення властивості Реnа колір і стиль заливки області усередині еліпса — значення властивості Brush тій поверхні (canvas), на якій метод креслить.

Дуга

Метод Arc малює дугу — частину еліпса (кола). Інструкція виклику методу в загальному вигляді виглядає так:

Canvas->arc(xl,yl,х2,у 2,х3,у3, х4,у4)

Параметри x1, y1, х2, у2 визначають еліпс (коло), частиною якого є дуга. Параметри х3 і у3 задають початкову, а х4 і у4 — кінцеву точку дуги. Початкова (кінцева) точка дуги — це точка перетину кордону еліпса і прямої, проведеного з центру еліпса в крапку з координатами х3 і у3(х4, у4). Метод Arc викреслює дугу проти годинникової стрілки від початкової точки до кінцевої.

Колір, товщина і стиль лінії, якою викреслюється дуга, визначаються значеннями властивості Реn поверхні (canvas), на яку виконується вивід.

Значення параметрів методу Arc визначають дугу як частину еліпса (кола)

Сектор

Метод pie викреслює сектор еліпса або круга. Інструкція виклику методу в загальному вигляді виглядає таким чином:

Canvas->pie(x1,y1,х2,у2,х3,у3,х4,у4)

Параметри x1, y1, x2, y2 визначають еліпс (круг), частиною якого є сектор; х3, у3, х4 і у4 — прямі — межі сектора. Початкова точка меж збігається з центром еліпса. Сектор вирізується проти годинникової стрілки від прямої, заданою точкою з координатами (х3, у3), до прямої, заданою точкою з координатами (х4, у4) (мал. 3.5).

Значення параметрів методу Pie визначають сектор як частину еліпса (кола)

Текст

Виведення тексту (рядків типу Ansistring) на поверхню графічного об'єкту забезпечує метод Textouta. Інструкція виклику методу TEXTOUTA у загальному вигляді виглядає таким чином:

Canvas->textouta(x,y,tekct)

Параметр текст задає текст, що виводиться. Параметри х і у визначають координати точки графічної поверхні, від якої виконується виведення тексту .

Координати області виведення тексту

Шрифт, який використовується для виведення тексту, визначається значенням властивості Font відповідного об'єкту canvas. Властивість Font є об'єктом типу Tfont. У таблиці. перераховані властивості об'єкту Tfontщо визначають характеристики шрифту, використовуваного методом TEXTOUTA для виведення тексту.

Таблиця Властивості об'єкту Tfont

Властивість

Визначає

Name

Використовуваний шрифт. Як значення слід використовувати назву шрифту (наприклад Arial)

Size

Розмір шрифту в пунктах (points). Пункт— це одиниця вимірювання розміру шрифту, використовувана в поліграфії. Один пункт рівний 1/72 дюйми

Style

Стиль зображення символів. Можливо: нормальним, напівжирним, курсивним, підкресленим, перекресленим. Стиль задається за допомогою наступних констант: fsbold (напівжирний) fsltalic (курсив) fsunderline (підкреслений) fsstrikeout (перекреслений) Властивість style є множиною, що дозволяє комбінувати необхідні стилі. Наприклад, інструкція, яка встановлює стиль "напівжирний курсив", виглядає так: Canvas->font->style = Tfontstyles ( ) <<fsbold<<f sunderline

Color

Колір символів. Як значення можна використовувати константу типу Tcolor

При виведенні тексту вельми корисні методи Textwidth і Textheight значеннями яких є відповідно ширина і висота області виведення тексту, які, очевидно, залежать від характеристик використовуваного шрифту. Обом цим методам як параметр передається рядок, який передбачається вивести на поверхню методом TEXTOUTA.

Наступний фрагмент коди демонструє використання методів, що забезпечують виведення тексту на поверхню форми. Приведена функція обробки події Onpaint закрашує верхню половину вікна білим, ніжнюю — блакитним кольором, потім в центрі вікна, по межі закрашених областей, виводить текст .

void _fastcall Tforml::formpaint(Tobject *Sender)

{

Ansistring ms = "Borland C++builder";

Trect arect;

int x,y; // крапка, від якої буде виведений текст

// верхню половину вікна фарбуємо білим

arect = Rect(0,0,ClientWidth,ClientHeight/2);

Canvas->brush->color = clwhite;

Canvas->fillrect(arect);

// нижню половину вікна фарбуємо блакитним

arect = Rect(0,clientheight/2,clientwidth,clientheight);

Canvas->brush->color = clskyblue;

Canvas->fillrect(arect);

Canvas->font->name = "Times New Roman";

Canvas->font->size = 24;

// Canvas->font->style = Tfontstyles ()« fsbold « fsitalic;

// текст розмістимо в центрі вікна

х = (Clientwidth - Canvas-xtextwidth(ms)) /2;

у = Clientheight/2 - Canvas-xtextheight(ms) /2;

Canvas->brush->style = bsclear; // область виведення тексту

// не закрашувати

Canvas->font->color = clblack; Canvas->textouta(x,y,ms);

// вивести текст

}

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