Средства управления подсветкой и обзором фигур. Построение графиков функций трех переменных.
Рекомендуется с помощью команды help ознакомиться с командами, задающими управление подсветкой и связанными с ней оптическими эффектами:
- diffuse – задание эффекта диффузионного рассеяния;
- lighting – управление подсветкой;
- material – имитация свойств рассеивания света различными материалами;
- specular – задание эффекта зеркального отражения.
Следующие три команды позволяют управлять углами просмотра, под которыми рассматривается видимая в графическом окне фигура:
- view – задание положения точки просмотра;
- viewmtx – задание и вычисление матрицы вращения;
- rotateSd – задание поворота трехмерной фигуры.
В ряде случаев применением этих команд можно добиться большей выразительности трехмерных объектов. Скорость построения таких графиков сильно зависит от аппаратной поддержки графики в конкретном ПК. Так, использование современных видеоадаптеров с графическим процессором и поддержкой средств OpenGL позволяет повысить скорость построения трехмерных графиков в несколько раз и добиться большей их выразительности.
Построение графиков функций трех переменных
Графики сечений функций трех переменных строит команда slice (в переводе – "ломтик"). Она используется в следующих формах:
- slice(X.Y.Z.V.Sx,Sy,Sz) – строит плоские сечения объемной фигуры V в направлении осей x,y,z c позициями, задаваемыми векторами Sx, Sy, Sz. Массивы X, Y, Z задают координаты для V и должны быть монотонными и трехмерными (как возвращаемые функцией meshgrid) с размером MxNxP. Цвет точек сечений определяется трехмерной интерполяцией в объемной фигуре V;
- slice(X,Y.Z.V,XI.YI.ZI) – строит сечения объемной фигуры V по поверхности, определенной массивами XI, YI, ZI;
- slice (… 'method') – при построении задается метод интерполяции, который может быть одним из следующих: 'linear', 'cubic' или 'nearest'. По умолчанию используется линейная интерполяция – 'linear';
- slice(V.Sx.Sy.Sz) или slice(V.XI.YI.ZI) – подразумевается X=1:N, Y=1:M, Z=1:P;
- H=slice(…) – строит сечение и возвращает дескриптор объекта класса surface.
График примера, приведенного ниже, представлен на рис. 6.30.
>
>
[x.y.z]
=
meshgrid(
-
2
:.
2
:
2
.
-
2
:.
25
:
2
.
-
2
:.
16
:
2
);
>
>
v
=
sin(x).
*
exp(
-
x.
*
2
-
y.
^
2
-
z.
^
2
);
>
>
slice(x.y.z.v.[
-
1.2.8
2
].
2
.[
-
2
-
0.2
])