Лабораторна робота № 19
Побудова багатовимірних зображень Мета роботи – вивчення засобів машинної графіки QBASIC для побудови багатовимірних зображень.
Теоретична частина
Функція U називається функцією N змінних (аргументів) X, Y, Z,…,T, якщо кожній сукупності значень X, Y, Z,…,T, з області їх зміни, відповідає визначене значення U. Функціональна залежність позначається так:
U=F(X, Y, Z,…,T) Про функції двох змінних
Площа прямокутника, що має 4см в довжину і 6 см в ширину, дорівнює 4*6 = 24 см2. У загальному випадку площа Z прямокутника з довжиною сторін X і Y виражається формулою Z = X*Y. У такому випадку кажуть, що Z є функція від X і Y, або Z є функція двох змінних X і Y. Можна навести багато прикладів залежності однієї величини від двох інших. Розглянемо формулу для об’єму V циліндра, що виражається через його висоту HT і радіус R:
V = PI*R*R*HT.
Значення V залежить від значень, що приймає R і HT (PI – постійна величина ). Таким чином, V є функція двох змінних R і HT. Приведемо ще декілька прикладів функцій двох змінних:
Як мають «виглядати» такі функції? Ви вже познайомилися з тим, як креслити графік функції однієї змінної. Спробуємо застосувати аналогічну процедуру для функцій двох змінних. Якщо Z функція X і Y, то для кожного значення X і Y можна обчислити відповідне значення Z. Якщо у нашому розпорядженні було б три виміри, то ми змогли б побудувати точку з висотою Z над точкою з координатами (X, Y). В результаті отримали б поверхність схожу на острів. Екран нашого комп’ютера та лист паперу не мають трьох вимірів. Тому нам потрібно зобразити ці три виміри з допомогою можливостей двовимірного простору; це дуже нагадує фотографію або рисунок куба. Припустимо, що цей куб є частиною трьохвимірного простору, в якому нам потрібно побудувати графіки. Саму нижню вершину назвемо початком координат, праве нижнє ребро буде віссю X, а ліве нижнє – віссю Y. Ребро, що виходить з даної вершини вертикально, буде відповідати третьому виміру. Таким чином, основа куба представляє собою кусок площини X, Y, а точки на ній задаються своїми декартовими координатами (X, Y). Щоб зобразити графік, ми знаходимо точку (X, Y) в основі куба, потім обчислюємо відповідне значення Z і помічаємо точку над точкою (X,Y) на відстані Z. Щоб отримати на нашому екрані необхідне пояснення, потрібно знати відповідність між координатами екрана і координатами куба. Якщо (А,В) означає координати екрану для точки, що лежить в основі куба, то значення X і Y можна отримати за наступною формулою (тут через S=SQR(2)/2):
X = S*A + S*B Y = -S*A + S*B.
Для того, щоб побудувати графік, потрібно почати з точок, що лежать в основі куба. Припустимо, що така точка на нашому екрані має координати (А,В). По виписаним вище формулам обчислюємо відповідні координати (X,Y) в основі куба. Використовуючи значення X і Y, знаходимо значення Z. Тепер ми можемо побудувати на нашому екрані точку з координатами (А,В + Z). Проте для того, щоб отримати більш глибшу перспективу ми зменшуємо вертикальний відрізок, помноживши його довжину на S. На екрані з¢являється точка з координатами (A, S*(B + Z)). Якби ми побудували такі точки для усіх точок в основі куба, то отримали б щось незрозуміле. Щоб запобігти цьому, ми будуємо тільки вибранні точки, як правило, ті, які відповідають точкам на прямих, паралельних осі X і (або) осі Y. Тому поверхня виглядає так, наче її відрізали на площині. Нижче приводиться подібний приклад. Далі на рисунках наведено ще декілька прикладів.
Програма “Поверхні” дозволяє креслити графіки функцій двох змінних. Якість отриманих графіків в більшій мірі залежить від графічних пристроїв вашого комп’ютера. Програма передбачає побудову 5 функцій.
Приклад розв’язання завдання для лабораторної роботи:
Побудувати графік функцій двох змінних:
Програма BEGIN1: CLS ' Графіки в полярних координатах SX = 200 ' Розмір екрана по горизонталі SY = 220 ' Розмір екрана по вертикалі ratio =0.6 ' Робить рядки однаковими по вертикалі і по горизонталі HY = SY / 2'Візьміть прийнятні для вашого комп’ютера HX = SX / 2'значення SY, SX S = SQR(2) / 2 AA = HX * S CLS PRINT "Поверхні" PRINT: PRINT "1. Z= COS(R)" PRINT: PRINT "2. Z=EXP(-R*R)" PRINT: PRINT "3. Z=SIN(R)/R", де R=SQR(X*X+Y*Y)" PRINT: PRINT "4. Z=COS(X)*COS(Y)" PRINT: PRINT "5. Мавпяче сідло" PRINT: PRINT "Вкажіть номер рівняння" INPUT N CLS 'Побудова графіків SCREEN 9 COLOR 14, 1 FOR A = -AA TO AA + 5 * S MAX = -HX BB = AA + A - 10 * S * INT((A + ABS(A)) / (10 * S)) FOR B = -BB TO BB + S * 4 STEP 10 * S X = S * (A + B): Y = S * (B - A): Z = B: R = SQR(X * X + Y * Y) IF N = 1 THEN Z = 10 * COS(R / 5) + B IF N = 2 THEN Z = 75 * EXP(-R * R / 600) + B IF N = 3 AND R <> 0 THEN Z = 125 * SIN(R / 5) / R + B IF N = 4 THEN Z = 10 * COS(X / 10) * COS(Y / 10) + B IF N=5 AND R <> 0 THEN Z =X*Y*(X-Y)*(X+Y)/(1000*R)+B IF Z < MAX THEN GOTO BEGIN3 MAX = Z U = HX + A V = HY + Z * S / ratio IF V < 0 OR V > SY THEN GOTO BEGIN3 PSET (50 + U, 20 + V) BEGIN3: NEXT B NEXT A 'Вибір закінчення чи повтору програми LOCATE 1, 2 PRINT "Якщо потрібно повторити виконання програми" PRINT "натисніть Y, якщо ні — N" BEGIN2: G$ = INKEY$ IF G$ <> LCASE$("Y") AND G$ <> LCASE$("N") THEN GOTO BEGIN2 IF G$ = LCASE$("Y") THEN GOTO BEGIN1 END
Контрольні запитання
1. Що називається функцією багатьох змінних? Її позначення. 2. Як побудувати графік функції двох змінних?
Варіанти завдань
Побудувати графік функції двох змінних відповідно до свого номера варіанта:
|