Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота 2-2010.doc
Скачиваний:
5
Добавлен:
07.02.2016
Размер:
1.15 Mб
Скачать

3.3 Тривимірні графіки

Найуживанішими функціями пакета МАТLАВ, що вживаються для створення тривимірних графіків є:

plot3 - побудова графіка в тривимірній системі координат

mesh - побудова сітки на поверхні графіка

surf - побудова поверхні графіка

contour3 - побудова контурів поверхні графіка

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

Розглянемо докладніше процес створення тривимірної поверхні . Нехай у точці з координатами x1,y1 обчислюється значення функції z=f(x,y)і воно дорівнює z1.У іншій точці x2,y2 обчислюють значення функції z2.Продовжуючи цей процес, отримують масив точок (x1,y1,z1), (x2,y2,z2),… (xM,yM,zM)тривимірного простору. Найчастіше для такого обчислення аргументів використовують розбиття у вигляді прямокутної сітки. Задля опису даної сітки у МАТLАВ створюють дві матриці, наприклад, X,Y.Кількість стрічок даних матриць дорівнює кількості вузлів розбиття відрізку (вектору) [ymin ,ymax], а кількість стовпчиків – кількості вузлів розбиття відрізку [xmin , xmax]. Для формування даних матриць використовується функція meshgrid , яка має такий синтаксис:

[X Y]= meshgrid (x,y),

де x,y – вектори, що вміщують вузли сітки згідно висей Ox та Oy,відповідно. Далі у кожному вузлі прямокутної сітки (k,m) обчислюються значення функції z=f(x,y)та зберігаються у матриціZ.

Приклад 2.

Побудуємо поверхню , що задається функцією f(x,y)=exp(-x2-y2) різними засобами ( з використанням різних функції для їхньої побудови ).

% задаємо координати вузлів сітки

>>x=-2:0.1:2;

>>y=-1:0.1:1;

>>[X Y]= meshgrid (x,y);% створюємо матриці,що містять у собі

% координати вузлів сітки

>>Z=exp(-X.^2-Y.^2);

>>plot3(X,Y,Z);% будуємо першим засобом ( рис. )

>>figure

>>hS1=mesh(X,Y,Z);% будуємо другим засобом (рис. )

>>figure

>>surf(X,Y,Z);% будуємо третім засобом ( рис. )

>>figure

>>surfl(X,Y,Z);% будуємо четвертим засобом ( рис. )

Останні три функції дають більш реалістичне зображення, чим функція plot3, фарбуючи ребра різними кольорами та убираючи ті лінії, що знаходяться позаду. Якщо потрібно все ж таки побачити ці задні ребра, слід виконати команду hidden off ( знов виключити цей режим - hidden on ).Якщо ви хочете ще покращити зображення поверхні, можна убрати темні лінії, що відображують ребра, тобто зробити плавний перехід кольорів за допомогою команди shading interp.Можна трактувати поверхню як матеріальну з деякими фізичними властивостями по відображенню світла, або задати різні відтінки однієї світової гами – тоді використайте функцію colormap( copper),де у дужках заданий матеріал «мідь» зі своїми особливостями відбивання світла або colormap( gray) – тоді увесь

Рисунок буде у сірій гамі. Можливостей у пакеті дуже багато. Для оформлення графіку у випадку 3D, як і у двовимірному випадку, можна використати функції axis, text, xlabel, ylabel, zlabel, title задля тих же цілей.

Слід відмітити, що мова MATLAB як візуальна працює з об’єктами(у даному випадку графічними), тобто дозволяє отримати інформацію про їхні властивості - за допомогою команди get .Навпаки, можна напрямки задати якусь з них командою set .Так, у прикладі 2 спеціально заданий об’єкт mesh з ім’ям hS1.Щоб отримати дані про всі його властивості потрібно виконати команду get(hS1), тільки подивитись тип об’єкту - команду get(hS1,’Type’).Щоб встановити властивість плавного переходу кольорів - команду set (hS1,’FaceColor’,’interp’).

Основні довідкові дані про роботу з тривимірною графікою можна отримати за допомогою команди help graph3d.

Для тривимірних графіків існує також можливість змінювати властивості умовної камери, що фіксує сцену з графіком: можна змінювати положення цієї камери, відстань від сцени, а також властивості її об’єктива.

Це є потужним засобом впливати на деталі відображення. Робити все це можна декількома засобами, але найпростішим є метод зміни точки огляду (viewpoint). У цьому разі , правда, змінюються тільки кути, що задають орієнтацію цієї точки у просторі : кут азимуту (az) та кут підвищення (el). Зміна першого означає обертання площини xOy навкруги вісіOz проти годинної стрілки. Кут підвищення el- це кут між напрямком на точку огляду та площиною xOy.За замовченням для функцій mesh,surf,surfl встановлені значення az=-37,5’, el=30’.Ці значення у будь-який час можна змінювати за допомогою спеціальної функції view([az,el]).Змініть ці значення на, наприклад такі: view([-15,20]), або інші.

Для збереження графічного зображення необхідно виконати у графічному вікні команду меню FileSave або FileSave as.Після цього у стандартному вікні, що з’явиться, слід вказати ім’я файлу та вибрати розширення fig , яке MATLAB пропонує за замовченням. Графічна інформація буде збережена у двійковому файлі того ж формату, що розглянутий раніше mat-файл. Для зчитування раніше збереженого файлу з графічним зображенням слід виконати команду FileOpen.Для експорту файлу у інші графічні формати слід виконати команду FileSave as та потім у вікні вказати вибраний формат ті ім’я файлу.