на формі вікна прикладної програми С++
Для відображення графічної інформації на формі вікна програми у бібліотеці С++ 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 - визначає шаблон заповнення (штрихування).