Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра ПЗ
Звіт
з лабораторної роботи №1
На тему: Візуалізація статичних двовимірних зображень за допомогою однієї з відомих мов програмування.
з дисципліни “ Комп’ютерна графіка ”
Тема роботи: Візуалізація статичних двовимірних зображень за допомогою однієї з відомих мов програмування.
Мета роботи: Вивчити графічні функції середовища програмування та навчитися самостійно працювати з help -системою середовища
Теоретичні відомості
Клас TCanvas. Цей клас створює «канву», на якій можна малювати інструментами – пером, пензлем і шрифтом. Об’єкти класу TCanvas автоматично створюються для всіх видимих компонентів, які повнні вміти малювати себе. Вони інкапсулюють об’єкти Font, Pen, Brush, а також багато чисельні методи, використовуючи дані об’єкти.
Під час написання даної лабораторної роботи я використав такі методи класу TCanvas :
Arc(X1,Y1,X2,Y2,X3,Y3,X4,Y4: integer) – креслить дугу що розміщується в прямокутнику (X1,Y1) – (X2,Y2). Початок дуги лежить на перетині еліпса і променя проведеного з його центру в точку (X3,Y3), а кінець – на перетині з променем з центра в точку (X4,Y4). Дуга креслиться против годинникової стрілки.
Rectangle(X1,Y1,X2,Y2:integer) – малює і заповнює прямокутник (X1,Y1) – (X2,Y2).
Клас TPen. За допомогою класа TPen створюється об’єкт перо що служить для малювання ліній. З нього явикористав:
Color: TColor – задає колір накреслених пером ліній.
Style: TPenStyle – задає стиль ліній , що мають ширину лінії 1 піксель.
Width: integer – для задання ширини лінії в пікселях.
Завдання
Скласти програму викреслювання дуг еліпса відповідним стилем, товщиною і кольором. Стиль, товщина та колір вибираються користувачем з переліку запропонованих програмою.
Текст програми
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TElipseDyg *ElipseDyg;
//---------------------------------------------------------------------------
__fastcall TElipseDyg::TElipseDyg(TComponent* Owner)
: TForm(Owner)
{
}
int nCol, nStl;
//---------------------------------------------------------------------------
void __fastcall TElipseDyg::ButtonImageClick(TObject *Sender)
{
Randomize;
ImagePol->Canvas->Rectangle(0,0,425,369);
nCol=StrToInt(ComboBoxColor->Text);
switch(nCol)
{
case 1:ImagePol->Canvas->Pen->Color=clYellow;break;
case 2:ImagePol->Canvas->Pen->Color=clRed;break;
case 3:ImagePol->Canvas->Pen->Color=clLime;break;
case 4:ImagePol->Canvas->Pen->Color=clBlue;break;
}
ImagePol->Canvas->Pen->Width=StrToInt(EditWidth->Text);
nStl=StrToInt(ComboBoxStyle->Text);
switch(nStl)
{
case 1:ImagePol->Canvas->Pen->Style=psSolid;break;
case 2:ImagePol->Canvas->Pen->Style=psDash;break;
case 3:ImagePol->Canvas->Pen->Style=psDot;break;
case 4:ImagePol->Canvas->Pen->Style=psDashDot;break;
}
ImagePol->Canvas->Arc(10,10,random(100),random(100),45,10,45,100);
ImagePol->Canvas->Arc(25,155,random(250),random(255),150,105,150,205);
ImagePol->Canvas->Arc(50,10,random(250),random(100),15,100,14,10);
}
Результат роботи програми
Висновок: під час виконання лабораторної роботи я вивчив графічні функції середовища програмування та навчився самостійно працювати з help -системою середовища