Матричная лаборатория MatLab




Примеры, иллюстрирующие возможности дескрипторной графики



Примеры, иллюстрирующие возможности дескрипторной графики

Теперь рассмотрим более сложные примеры, наглядно демонстрирующие возможности дескрипторной графики. Воспользовавшись File > New > M-File или edit msl.m. создадим файл msl.m следующего содержания:

[х,у] = meshgrid([-2:.4:2]);

Z =sin(x. ^ 2+y.^2);

fh = figureCPosition'.[350 275 400 300].'Color ' . V);

ah = axes('Color'.[.8 .8 .8].'XTick'.[-2 -1 0 1 2]....

'YTick',[-2 -1 0 1 2]};

sh = surfaceCXData'.x.'YData'.y.'ZData'.Z....

'FaceColor',get(ah.'Color')+.....

'EdgeColor'. 'k'.'Marker'.'o'....

'MarkerFaceColor',[.5 1 .85]):

В этом файле заданы три объекта: прямоугольник fh — объект класса figure, оси с метками ah — объект класса axes и трехмерная поверхность sh — объект класса surface. Она является результатом наложения объектов fh и ah друг на друга. При этом объект ah класса axes явно наследует свойства объекта fh класса figure. Наследование здесь проявляется в том, что при задании свойства «цвет граней» (FaceColor) объекта sh используется осветление (добавлением константы 0.1) цвета осей, полученного при помощи функции get (ah. color).

Команда v1ew(3) изменяет точку обзора трехмерной поверхности. Раньше, когда параметры осей были жестко заданы, мы смотрели на поверхность строго сверху. Теперь команда v1ew(3) установила точку обзора трехмерных графиков, принятую по умолчанию.

Теперь создадим второй файл — ms2.m:

h(l) = axes('Position',[0 Oil]);

sphere;

h(2) = axesCPosition'.[0 0 .4 .6]);

peaks:

h(3) = axes('Position'.[0 .5 .5 .5]);

sphere:

h(4) = axes('Position'.[.5 0 .4 .4]);

sphere;

h(5) = axes('Position 1 .[.5 .5 .5 .3]):

cylinder([0 0 0.5]);

set(h,'Visible 1 .'off):

alpha(0.l):

set(gcf.'Renderer'.'opengl')'

Здесь задано 5 трехмерных объектов: три сферы разных размеров, поверхность peaks и цилиндр.

Запустив файл ms2, мы получим еще более интересную картину. Заново будет вычислена величина z, а затем построены изображения пяти фигур:

z = 3*(1-х). ^ 2.*ехр(-(х. ^ 2) - (у+1). ^ 2) ...

- 10*(х/5 - х.'З - у."5).*ехр(-х.^2-у.^2) ...

- 1/3*ехр(-(х+1).^2 - у.^2)

Последовательность наложения фигур, заданных в файле ms2, определяется последовательностью их появления в файле. Любопытен вид цилиндра — похоже, что произошедшее с ним преобразование связано с изменением системы координат с декартовой на сферическую.



Начало  Назад  Вперед