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

Ілюстрації

Найпростіше вивести іллюстрацію, яка знаходиться у файлі з розширенням .bmp, .jpg або .ico, можна за допомогою компоненти image. Основні властивості компоненти наведені в таблиці 4.

Таблиця 4. Властивості компоненти image

Властивість

Опис

Picture

Ілюстрація, яка відображується в полі компоненти

Width, Height

Розмір компоненти. Якщо розмір компоненту менше розміру ілюстрації і значення властивостей AutoSize, Strech і Proportional рівне false, то відображується частина ілюстрації

Proportional

Ознака автоматичного масштабування картинки без спотворення. Щоб масштабування було виконане, значення властивості AutoSize має бути false

Strech

Ознака автоматичного масштабування (стиснення або розтягування) ілюстрації відповідно до реального розміру компоненти. Якщо розмір компоненти не пропорційний розміру ілюстрації, то ілюстрація буде спотворена

AutoSize

Ознака автоматичної зміни розміру компоненти відповідно до реального розміру ілюстрації

Center

Ознака визначає розташування картинки в полі компоненту по горизонталі, якщо ширина картинки менше ширини поля компоненти. Якщо значення властивості рівне false, то картинка притиснута до правої межі компоненти, якщо true — то картинка розташована по центру

Visible

Ознака вказує, чи відображується компонента і, відповідно, ілюстрація на поверхні форми

Canvas

Поверхня, на яку можна вивести графіку

Хід роботи:

Задача 1. Побудова графіка функції. Використовуючи властивість Pixels, побудувати графік функції у = 2 sin(x) e*/5. Границі діапазону зміни аргумента функції є вхідними даними. Діапазон зміни значень функції повинен обчислюватися під час роботи програми. На основі цих даних програма обчислює масштаб, який дозволяє побудувати графік таким чином, щоб він займав всю область форми, призначену для виведення графіка. Для побудови графіка використати всю доступну область форми, причому якщо під час работи програми користувач змінить размір вікна, то графік повинен виводитись заново з врахуванням реальних размірів вікна.

  1. Створити форму для рисування графіка функцій по точках.

  2. Нарисувати графік функції 2*sin(x)*ex/5.

  3. Підключити файл заголовків math.h.

  4. Створіть функцію, графік якої потрібно побудувати

float f(float х)

{return 2*sin(x)*exp(x/5); }

  1. Створіть функцію Grafik,оголосивши її прототип в разділі private у файлі заголовків програми. Текст функції наведено нище.

void TForml::Grafik()

{

float xl, x2; // границі зміни агрумента функцій

float yl, y2; // границі зміни значення функції

float x; // аргумент функції

float у; // значення функції в точці х

float dx; // приріст аргумента

int 1, Ь; // лівий нижній кут області виведення графік

int w, h; // ширина и висота області виведення графіка

float mx, my; // масштаб по осям X і Y

int xO, уО; // початок координат

// область виведення графіка

1-10; // X - координата лівого верхнього кута

b = Forml->ClientHeight-20; // Y — координата лівого нижнього кута

h = Forml->ClientHeight-40; // висота

w = Forml->Wldth - 20; // ширина

xl = 0; // нижня границя діапазона аргумента

х2 = 25; // верхня границя діапазона аргумента

dx = 0.01; //крок аргумента

// знайдемо максимальне и мінімальне значення функції на відрізку [xl,x2]

x = xl;

yl = f(х); // мінімум

у2 = f(x); // максимум

do

{

у = f(х);

if ( у < yl) yl = у;

if ( у > у2) у2 = у;

х += dx; } while (x <= х2);

// обчислюємо масштаб

my = (float)h/abs(y2-yl); // масштаб по осі Y

mx = w/abs(x2-xl); // масштаб по осі X

// осі

хО = 1+abs(xl*mx);

уО = b-abs(yl*my);

Canvas->MoveTo(xO,b);Canvas->LineTo(xO,b-h);

Canvas->MoveTo(l,yO);Canvas->LineTo(1+w,yO);

Canvas->TextOutA(xO+5,b-h,FloatToStrF(y2,ffGeneral,6,3));

Canvas->TextOutA(xO+5,b,FloatToStrF(yl,ffGeneral, 6,3));

// побудова графіка

x = xl; do {

У = f (x);

Canvas->Pixels[xO+x*mx][yO-y*my] = clRed;

x += dx;

}

while (x <= x2);

}