Команда plot3(…) может быть использован для построения так называемой каркасной поверхности, которая ограничивает поверхность геометрического тела и похожа на каркас, сплетенный из проволоки.
Пример 16. Построить график каркасной поверхности функции z(x,y) = x+y3(рис. 5.18),где переменные xи yизменяются на интервале [–8;8] с шагом 1. Для построения графика использовать непрерывные линии. Линии, расположенные параллельно плоскости zOy, закрасить в черный цвет, а линии, параллельные плоскости zOx – в красный цвет. На плоскостях xOy,zOx,zOyсформировать сетку.
>> [x,y]=meshgrid(-8:8);
>> z=x+y.^3;
>> plot3(x,y,z,'k',y,x,z,'r')
>> grid on
Как видно из текста программы, для формирования каркасной поверхности в команде plot3(…)использованы два аргумента с дополнительными параметрами. При этом во втором аргументе переменные xи yпереставлены местами. Сетка, как и в 2D графике, задается командой grid on.
Рис. 5.18
В примере 16 для построения каркасной поверхности была использована команда plot3(…). Однако для построения таких поверхностей в MATLAB имеются и другие команды, например, mesh(…) и surf(…).
Пример 17. С помощью команды mesh(…)построитькаркасную поверхность (рис. 5.18), заданную функцией z = sin(x)/(x2+y2+0,3), где переменные xи yизменяются на интервале [–3;3] с шагом 0,1.
>> [x,y]=meshgrid(-3:0.1:3);
>> z=sin(x)./(x.^2+y.^2+0.3);
>> mesh(x,y,z)
На экране цветного монитора можно видеть, что цвет линий каркасной поверхности зависит от величины значений функцииz. Кроме того, команда mesh(…) предполагает вывод только видимой части поверхности.
Рис. 5.19
Для того чтобы сделать каркасную поверхность «прозрачной» (рис. 5.20), следует использовать команду hidden off. Предыдущая программа в этом случае имеет вид
>> [x,y]=meshgrid(-3:0.1:3);
>> z=sin(x)./(x.^2+y.^2+0.3);
>> mesh(x,y,z)
>> hidden off
Рис. 5.20
Команда hidden on убирает невидимую часть поверхности, возвращая графику прежний вид.
В отличие от команды mesh(…) применение команды surf(…) позволяет окрасить не только линии графика, но и залить определенным цветом каждую клетку поверхности. Цвет зависит от значений функции в точках, соответствующих углам клетки.
Результат замены команды mesh(x,y,z) в примере 17 на команду surf(x,y,z) представлен на рис. 5.21.
Рис. 5.21
Трехмерные графики, изображенные на рис. 5.19 – 5.21, позволяют наглядно представить форму поверхности, однако по ним трудно судить о значениях двухмерной функции. Для того чтобы частично устранить этот недостаток, можно после команды surf(x,y,z)применить команду colorbar, которая выводит рядом с графиком столбик, устанавливающий соответствие между цветом поверхности и величиной функции. Рис. 5.22 иллюстрирует получающийся результат.
Рис. 5.22
Командуcolorbar можно использовать в сочетании со всеми операторами MATLAB, строящими трехмерные объекты.
Применение после команды surf(x,y,z)команды shading flatпозволяет убрать каркасные линии (рис. 5.23), а использование команды shading interp– получить поверхность, плавно залитую цветом, зависящим от значений функции.