Иллюстрированный самоучитель по MatLab

Средства управления подсветкой и обзором фигур. Построение графиков функций трех переменных.

Рекомендуется с помощью команды 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])
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.