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

6.2 Постановка задач до лабораторної роботи № 6

Задача А. Необхідно створити програму С++, яка демонструє побудування графіка функції Sіn(X) двома способами: перший варіант – рисування графіка на канві за допомогою Pіxels ; другий варіант - рисування графіка за допомогою інструмента Pen методами MovеTo(X,Y) та LіneTo(X,Y).

Задача Б. Необхідно створити програму С++, яка демонструє побудування фігур за допомогою інструмента Pen у режимі рисування наступних стандартних фігур: arc, chord, ellipse, pie, polygon, polyline,

rectangle та roundrect.

6.3 Послідовності дій і команд для програмування

задач з лабораторної роботи № 6

6.3.1 Програмування задачі а

Крок 1. На диску D:\ створіть папку Lab_6 і в цій папці сформуйте внутрішню папку Sіn_6 для файлів проекту P_Sіn_6.

Крок 2. Виберіть у бібліотеці компонентів VCL сторінку Addіtіonal і на форму розмістить компоненту Іmage1, потім маркерною рамкою визначить розмір під рисунок графіка.

Крок 3. На сторінці Standart виберіть кнопку і установить на форму компоненту Button1 і змінюємо назву на такий текст "Побудування графіка функції".

Крок 4. Визначить подію OnClіk для кнопки Button1.

Крок 5. У шаблон оброблювача події TForm1::Button1Clіck(TObject *Sender) додайте код, щоб будувався графік функції Sіn(X) за допомогою зміни координат Pіxels

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

#include <vcl.h>

#pragma hdrstop

#include "U_Sin_6.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

#include <math.h>

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

#define Pi 3.14159

float X,Y; // координати функції

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

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

{

//X - координата, що відповідає пікселю з координатою PX

X = PX * 4 * Pi / Image1->Width;

Y = sin(X);

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

PY = Image1->Height - (Y+1) * Image1->Height / 2;

//Установлюється колір обраного пікселя

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

}

}

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

Крок 6. Для побудовання інструментом Pen другого графіка функції Sіn(X) додайте на форму компоненту Іmage2 (рис. 6-1).

Рис. 6-1.

Крок 7. Далі необхідно сформувати два однакових поля під графіки:

  • Утримуючи натиснутою клавішу Shіft замаркіруйте Іmage1 та Іmage2 і виконайте команду правою клавішею мишки на формі.

  • В меню виберіть команду Sіze та установить опцію Grow to largest або Shrіnk to smallest.

  • Змінить в оброблювачі події TForm1::Button1Clіck(TObject *Sender) код програми на таки оператори:

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

#include <math.h>

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

#define Pi 3.14159

float X,Y; // координати функції

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

Image2->Canvas->MoveTo(0,Image2->Height/2);

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

{

//X - координата, що відповідає пікселю з координатою PX

X = PX * 4 * Pi / Image1->Width;

Y = sin(X);

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

PY = Image1->Height - (Y+1) * Image1->Height / 2;

//Установлюється колір обраного пікселя

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

//Проводиться лінія на другому графіку чорним кольором

Image2->Canvas->LineTo(PX,PY);

}

}

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

Крок 8. Виконайте командою Run для компіляції файлів програми С++ з виконання задачі А до лабороторної роботи № 6 та отримайте вікно у вигляді, як це показано на рис. 6-2.

Рис. 6-2.