Трехмерная графика в Matlab
Построение 3D-поверхности
Функция meshgrid
Функция meshgrid записывается в следующих формах:
Функции для построения поверхностей
Команда plot3
Пример построения командой plot3
График поверхности, построенный кружками
Сетчатые 3D-графики с окраской
Команды mesh
Оформление графика поверхности
Пример использования команды shading interp.
Построение поверхности столбцами
Построение поверхности с окраской
Команды surf
Контурные графики
Контурные графики
Контурные графики
contour
Цветные объемные круговые диаграммы
MATLAB имеет несколько графических функций, возвращающих матричный образ поверхностей
Вывод графиков в отдельные окна
1.11M
Category: informaticsinformatics

Трехмерная графика в Matlab

1. Трехмерная графика в Matlab

2.

2

3. Построение 3D-поверхности

• Рассмотрим пример:
построить поверхность f(x,y)=sin(r)/r, где
2
2
r=sqrt(x +y )
3

4.

• Функция meshgrid возвращает две матрицы – X и Y –
которые определяют область построения функции
• Собственно поверхность выводится функцией surfl
4

5. Функция meshgrid

Функция meshgrid служит для создания
массивов данных для трехмерной графики.
5

6. Функция meshgrid записывается в следующих формах:

• [X,Y] = meshgrid(x)
аналогична [X,Y] = meshgrid(x,x)
возвращает трехмерные массивы
• [X,Y] = meshgrid(x,y)
преобразует область, заданную
векторами х и у, в массивы X и Y
6

7.

Пример:
[X,Y] = meshgrid(1:3,13:17)
X=
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
Y=
13
14
15
16
17
13
14
15
16
17
13
14
15
16
17
7

8. Функции для построения поверхностей

Функция
mesh, surf
Для чего используется
Построение поверхностей
meshc, surfc Строит поверхность и контурную диаграмму под ней
meshz
Поверхность на «пьедестале»
surfl
Подсвеченная поверхность
contour
Контурная диаграмма
plot3
Трёхмерная линия (параметрическое задание)
comet3
Движение по трёхмерной линии
8

9.

Трехмерная графика.
Для построения простых трехмерных графиков в MATLAB используется
функция plot3(), которая отличается от plot() только количеством
получаемых параметров.
Пример.
>> t=0:pi/50:10*pi;
x=sin(t);
y=cos(t);
plot3(x,y,t);
grid on

10. Команда plot3

plot3(X,Y,Z) – строит поверхность в виде линий,
получаемых
в
сечении
поверхности
плоскостями, параллельными плоскости yOz.
X, Y и Z – это матрицы: X,Y – задают узлы
сетки, а матрица Z – значения по оси z в этих
узлах.
10

11. Пример построения командой plot3

[X,Y]=meshgrid([-3:0.15:3]);
Z=X.^2 + Y.^2;
plot3(X,Y,Z);
11

12.

plot3 (X, Y, Z, S) — обеспечивает построения с
учетом спецификации стиля линий и точек S,
соответствующей спецификации команды
plot.
plot3 может строить на одном рисунке графики
нескольких функций z1(x1,y1), z2(x2, y2) и т. д.
со спецификацией линий и маркеров каждой из
них.
plot3(x1,y1,z1,s1, х2,у2,z2,s2, хЗ,уЗ,z3,s3,...)
12

13.

Стиль линий и точек команд plot и plot3
цвет
b синий
g зеленый
r красный
c циан
m фиолетовый
y желтый
k черный
w белый
стиль точек
стиль линий
. точка
- сплошная
o кружок
: пунктирная
x x-крестик
-. штрихпунктирная
+ плюс
-- штрихами
* звездочка
(none) без линий
s квадрат
d кристалл
v треугольник (вниз)
^ треугольник (вверх)
< треугольник (влево)
> треугольник (вправо)
p пятиугольник
h шестиугольник
13

14. График поверхности, построенный кружками

[X,Y]=meshgrid([-3:0.15:3]);
Z=X.^2 + Y.^2;
plot3(X,Y,Z,’o’);
14

15.

[X,Y]=meshgrid([-3:0.15:3]);
Z=X.^2+Y.^2;
plot3(X,Y,Z,'-r',Y,X,Z,'-b')
В данном случае строятся два графика одной и той же функции с
взаимно перпендикулярными образующими линиями.
15

16. Сетчатые 3D-графики с окраской

Наиболее
представительными
и
наглядными
являются
сетчатые
графики поверхностей с заданной или
функциональной окраской. В названии
их команд присутствует слово mesh.
16

17. Команды mesh

• mesh – выводит в графическое окно
сетчатую поверхность;
• meshc — помимо графика поверхности
дает изображение ее проекции;
• meshz — строит поверхность в виде
столбиков.
17

18.

[X,Y]=meshgrid([-3:0.15:3]);
Z=X.^2+Y.^2;
mesh(X,Y,Z);
Функциональная окраска линий поверхности заметно усиливает
наглядность ее представления.
18

19. Оформление графика поверхности

Для удаления с поверхности линий, изображающих ребра, а также получения
плавного перехода цветов на освещенной поверхности, используется
команда
shading interp
Для получения информации о всех свойствах графического объекта,
создаваемого функцией mesh, используется команда get:
19

20. Пример использования команды shading interp.

[X,Y]=meshgrid([-3:0.15:3]);
Z=X.^2 + Y.^2;
meshc(X,Y,Z);
21

21.

Построение поверхности
столбцами
Использование суффикса z приводит к
построению «графика с пьедесталом».
Поверхность
строится
из
многочисленных столбцов:
meshz(...)
22

22. Построение поверхности столбцами

[X,Y]=meshgrid([-3:0.15:3]);
Z=X.^2 + Y.^2;
meshz(X,Y,Z);
23

23.

Дополнительные детали оформления 3D графиков
Для оформления трехмерных графиков можно
использовать те же функции, что использовались при
оформлении двумерных графиков функций,
рассмотренных ранее, такие как:
axis([ xmin, xmax, ymin, ymax, zmin, zmax ]), text, xlabel,
ylabel, zlabel, title.
С помощью функции subplot можно разместить в одном
графическом окне несколько трехмерных графиков.

24.

Построение поверхности с
окраской
Для построения поверхностей в виде
сетчатых
графиков,
использующих
функциональную
закраску
ячеек
используются команды класса surf(…).
25

25. Построение поверхности с окраской

Команды surf
• surf — строит цветную параметрическую
поверхность;
• surfc – обеспечивает дополнительное
построение контурного графика проекции
фигуры на опорную плоскость;
• surfl – строит график цветной поверхности
с подсветкой от источника света;
26

26. Команды surf

[X,Y]=meshgrid([-3:0.1:3]);
Z=sin(X)./(X.^2+Y.^2+0.3);
surf(X,Y,Z);
shading interp;
colorbar;
В этом примере команда shading Interp обеспечивает устранение
изображения сетки и задает интерполяцию для оттенков цвета объемной
поверхности, а команда colorbar выводит шкалу цветовых оттенков.
27

27.

Для
повышения
наглядности
представления поверхностей можно
использовать дополнительный график
линий равного уровня, получаемый
путем проецирования поверхности на
опорную плоскость графика (под
поверхностью). Для этого используется
команда surfс:
28

28.

[X,Y]=meshgrid([-3:0.1:3]);
Z=sin(X)./(X.^2+Y.^2+0.3);
surfc(X,Y,Z);
29

29.

Контурные графики
[X,Y]=meshgrid([-1:0.05:1]);
Z=X.^2+Y.^2;
levels=[0:0.1:0.5];
contour3(X,Y,Z,levels)
colorbar
Параметр levels
• может отсутствовать,тогда
число линий уровня
выбирается автоматически
• является просто значением
• является вектором значений
30

30. Контурные графики


[X,Y]=meshgrid([-1:0.05:1]);
Z=X.^2+Y.^2;
levels=[0:0.01:0.5];
contour3(X,Y,Z,levels)
colorbar
31

31. Контурные графики

contour3(peaks,20);
32

32.

Контурные графики
• Разновидность
контурного
графика contour(X,Y,Z)
• На плоскости xoy строятся
линии уровня. Сам график
поверхности не строится.
• В функции может стоять и 4ый
параметр,
который
указывает
число
линий
уровня.
• Для нанесения разметок на
линии уровня используется
clabel(CMatr,h)
• Cmatr

матрица,
содержащая информацию о
линиях уровня
• h – указатель на график, на
который следует нанести
разметку
33

33. Контурные графики

contour
[X,Y]=meshgrid([-1:0.05:1]);
Z=X.^2+Y.^2;
[M,h]=contour(X,Y,Z);
clabel(M,h)
34

34. contour

Цветные объемные круговые
диаграммы
Для построения объемных круговых диаграмм
служит команда pie3:
x = [1 2.2 0.8 2.5 2];
pie3(x, [0 0 0 1 1])
35

35. Цветные объемные круговые диаграммы

MATLAB имеет несколько графических
функций, возвращающих матричный
образ поверхностей
peaks – поверхность с рядом пиков и впадин
cylinder – цилиндрическая поверхность
ellipsoid – поверхность элипсоида
sphere – сферическая поверхность
36

36. MATLAB имеет несколько графических функций, возвращающих матричный образ поверхностей

[X1,Y1,Z1]=cylinder(10,30);
[X2,Y2,Z2]=sphere(30);
[X3,Y3,Z3]=ellipsoid(0,0,0,3.9,3.9,2.25,30);
subplot(2,2,1),surf(peaks);
subplot(2,2,2),surf(X1,Y1,Z1,X1);
subplot(2,2,3),surf(X2,Y2,Z2,X2);
subplot(2,2,4),surf(X3,Y3,Z3,X3);
37

37.

Вывод графиков в отдельные окна
figure– окно становится
текущим
clf– очистка всего текущего
окна
cla – очистить оси, заголовки
и названия осей
In=figure
Создание
указателя на графическое
окно
figure(In)

переход
к
нужному окну
clf(In) – очистка нужного окна
cla(In)
38

38. Вывод графиков в отдельные окна

.
Сохранение графических изображений
Для сохранения графического изображения в файл необходимо выполнить в
графическом окне команду меню File|Save или File|Save as. После чего на
экране появится стандартный диалог сохранения.
Дальше необходимо вести имя
файла и выбрать расширение (тип
графического файла).
По умолчанию MATLAB предлагает
сохранить изображение в свой
формат
*.fig,
в
который
сохраняется не изображение, а
информация необходимая для его
построения.
Графическое изображение можно
сохранить в формате bmp
English     Русский Rules