Построение
освещенной поверхности
Пожалуй, наиболее
реалистичный вид имеют графики поверхностей, в которых имитируется освещение
от точечного источника света, расположенного в заданном месте координатной системы.
Графики имитируют оптические эффекты рассеивания, отражения и зеркального отражения
света. Для получения таких графиков используется команда surf 1:
-
surfl(...)
— аналогична команде surf (...), но строит график поверхности с подсветкой
от источника света;
-
surfl
(Z.S) или surfl(X,Y,Z,S) — строит графики поверхности с подсветкой от источника
света, положение которого в системе декартовых координат задается вектором
S=[Sx,Sy.Sz], а в системе сферических координат — вектором S=[AZ.EL];
-
surfl
(..., 'light') — позволяет при построении задать цвет подсветки с помощью
объекта Light;
-
surfl
(..., 'cdata') — при построении имитирует эффект отражения;
-
surfl(X,Y,Z,S.K)
— задает построение поверхности с параметрами, заданными вектором K=[ka,kd,ks.spread],
где ka — коэффициент фоновой подсветки, kd — коэффициент диффузного отражения,
ks — коэффициент зеркального отражения и spread — коэффициент глянцевитости;
-
H=surf
1 (...) — строит поверхность и возвращает дескрипторы поверхности и источников
света.
По умолчанию
вектор S задает углы азимута и возвышения в 45°. Используя команды cla,
hold on, view(AZ,EL), surfl (...) и hold off, можно получить дополнительные
возможности управления освещением. Надо полагаться на упорядочение точек в X,
Y, и Z матрицах, чтобы определить внутреннюю и внешнюю стороны параметрических
поверхностей. Попробуйте транспонировать матрицы и использовать surfHX' .Y'
,Z'), если вам не понравился результат работы этой команды. Для
вычисления
векторов нормалей поверхности surf1 требует в качестве аргументов матрицы с
размером по крайней мере 3x3.
Ниже представлен
пример применения команды surfl:
»
[X.Y]=meshgrid([-3:0.1:3]);
» Z=sin(X)./(X.
^
2+Y.^2+0.3);
» surfl(X,Y,Z)
» colormap(gray)
» shading interp
» colorbar
Построенная
в этом примере поверхность представлена на рис. 6.29.
Рис.
6.29.
График поверхности с имитацией ее освещения
точечным источником
Сравните этот
рисунок с рис. 6.26, на котором та же поверхность построена без имитации ее
освещения.
Примечание
Нетрудно заметить определенную
логику в названиях графических команд. Имя команды состоит из основного слова
и суффикса расширения. Например, все команды построения поверхностей имеют
основное слово surf (сокращение от surface — поверхность) и суффиксы: с —
для контурных линий поверхности, l — для освещенности и т. д. Это правило
облегчает запоминание многочисленных команд графики.
Содержание раздела