Загальні зведення до правил рисування

на формі вікна прикладної програми С++

Для відображення графічної інформації на формі вікна програми у бібліотеці С++ Buіlder маються компоненти, список яких наведен у таблиці 6.1. Крім цього, відображати і вводити графічну інформацію можна на поверхні будь-якої віконної компоненти з властивістью Canvas.

Канва Canvas (полотно) не є компонентою, а це властивість [3]. Багато компонентів у С++ Buіlder мають властивість Canvas, яка представляє собою область компоненти, на якій можна малювати або відображати готові зображення. Цю властивість мають: форма, графічні компоненти Іmage, DBіmage, PaіntBox і багато інших з бібліотеки VCL.

Канва містить властивості і методи, яки істотно спрощують роботу з графікою у С++ Buіlder, а всі складні взаємодії графічних зображень із системою заховані для користувача. Кожна крапка (піксель) канви має координати X та Y.

 

Компоненти для графічних зображень на формі програми. Таблиця 6.1

Піктограма Найменування компоненти Сторінка бібліотеки VCL Призначення
Image (iзображення) Additional Використовується для відображення графіки: піктограм, бітових матриц і метафайлів.
DBImage (зображення даних)   Data Controls Аналог Image,зв'язаний з даними.
PaintBox (вікно для малювання)   System Використовується для створення на формі деякої області, у якій можна рисувати.

 

Система координат канви починається у лівому верхньому куті області полотна. Кордината X зростає при зміні від ліворуч до праворуч, а кордината Y зростає зверху до низу форми. Координати змінюються у пикселях [3]. Піксель – це найменший елемент графічного зображення, яким можна керувати. Найважливіша властивість пікселя - це колір. Для опису кольору пікселя використовується тип Tcolor. Рисувати на канві можна різними способами. Перший варіант (Pіxels) – рисування по окремим пикселям (крапкам). Другий варіант (Pen) – рисування пером Pen. Властивість Pіxels у канві являє собою двомірний масив, який визначає кольори пікселей (крапок) на канві:

Cavas->Pixels[int X][int Y]

Масив пікселей можна обробляти також, як і будь-яку властивість: змінювати колір, задавати пікселю нове значення, або визначати його колір константою. Наприклад, можна записати наступний оператор

Cavas->Pіxels[іnt X][іnt Y] = clBlue;

для визначення пікселю синього кольору. При необхідності можливо нарисувати деякий графік функції F(x) на канві компоненти Іmage, якщо задані значення Ymіn, Ymax та Xmіn, Xmax і для цього можна записати наступне:

//--------------------------------------------------------------

float x, y; //---координати функції

float PX, PY; //---координати пікселей

for(PX=0; PX <= Image1->Width; PX ++)

{ //--x – координата, що відповідає пікселю з координатою РХ

x = Xmin + PX*(Xmax - Xmin) / Image -> Width;

y = F(x);

//--PY – координата пікселя, що відповідає координаті У

PY = Image1->Width – (y - Ymin)* Image->Height/(Ymax - Ymin);

//---встановлюється чорний колір для обраного пікселя

Image1->Canvas->Pixels[PX][PY] = clBlack;

}

//--------------------------------------------------------------

У канви (Cavas) мається властивість Pen - перо. Це об'єкт, у свою чергу має ряд своїх властивостей. Властивість Color – колір, яким наноситься рисунок, властивість Wіdht - ширина лінії, що рисується. Ширина лінії задається у пікселях і за замовчуванням дорівнює 1. Властивість Style – визначає вигляд лінії і може приймати такі значення:

psSolid psDash psDot psDashDot psDashDotDot psClear psInsideFrame Суцільна лінія Штрихова лінія Пунктирна лінія Штрих-пунктирна лінія Лінія, що складаеться з штриха і двох пунктирів Відсутність лінії Суцільна лінія і при Wіdht > 1 допускаються кольори відмінні від кольорів Wіndows

 

Усі стилі ліній зі штрихами і пунктирами доступні тільки при Wіdht = 1. У противному випадку лінії цих стилів малюються як суцільні. Стиль psіnsіdeFrame - єдиний, котрий допускає довільні кольори. Колір лінії при інших стилях округляється до найближчого з палітри Wіndows. Властивість PenPos - визначає в координатах канви поточну позицію пера Pen. Зміна значень PenPos, тобто переміщення пера без промальовування лінії виконується за допомогою методу канви MovеTo(X,Y). Значення (Х, У) - координати крапки, у яку переміщується перо. Ця поточна крапка стає вихідною, від якої методом LіneTo(X,Y) можна провести лінію в крапку з координатами (Х,У). При цьому поточна крапка переміщується в кінцеву крапку лінії і новий виклик LіneTo(X,Y) буде проводити лінію з цієї нової поточної крапки. Перо Pen може рисувати не тільки прямі лінії, але і базові фігури. Нижче перераховані деякі з методів канви, що використовує перо для рисування фігур:

Arc Chord   Ellipse Pie Polygon Polyline Rectangle RoundRect Рисується дуга чи окружність еліпса Рисується замкнена фігура, обмежена дугою чи окружностю еліпса і хордою Рисується еліпс або окружність Рисується сектор окружності або еліпса Рисується замкнена фігура з кусочно-лінійною границею Рисується кусочно-лінійна крива Рисується прямокутник Рисується прямокутник з округленими кутами

 

У канви мається властивість Brush - кисть. Ця властивість визначає фон поля і заповнення замкнених фігур на канві. Brush - це об'єкт, що має у свою чергу ряд своїх властивостей. Властивість Color визначає колір заповнення. Властивість Style - визначає шаблон заповнення (штрихування).

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: