Построение поверхности с окраской
Особенно наглядное представление о поверхностях дают сетчатые графики, использующие функциональную закраску ячеек. Например, цвет окраски поверхности z(x, у) может быть поставлен в соответствие с высотой z поверхности с выбором для малых высот темных тонов, а для больших — светлых. Для построения таких поверхностей используются команды класса surf (...):
surf (X, Y, Z. С) — строит цветную параметрическую поверхность по данным матриц X, Y и Z с цветом, задаваемым массивом С;
surf(X.Y.Z) — аналогична предшествующей команде, где C=Z, так что цвет задается высотой той или иной ячейки поверхности;
surf(x.y.Z) и surf(x.y.Z.C) с двумя векторными аргументами х и у — векторы х и у заменяют первых два матричных аргумента и должны иметь длины length(x)=n и length(y)=m, где [m.n]=size(Z). В этом случае вершины областей поверхности представлены тройками координат (x(j), yd), Z(1,j)). Заметим, что х соответствует столбцам Z, а у соответствует строкам;
surf(Z) и surf(Z.C) используют х = 1:n и у = 1:m. В этом случае высота Z — однозначно определенная функция, заданная геометрически прямоугольной сеткой;
h=surf (...) —строит поверхность и возвращает дескриптор объекта класса surface.
Команды axis, caxis, color-map, hold, shading и view задают координатные оси и свойства поверхности, которые могут использоваться для большей эффектности показа поверхности или фигуры.
Ниже приведен простой пример построения поверхности — параболоида:
» [X.Y]=meshgrid([-3:0.15:3]);
» Z=X.^2+Y.^2;
» Surf(X,Y,Z)
Соответствующий этому примеру график показан на рис. 6.25.
Рис. 6.25. График параболоида с функциональной окраской ячеек
Можно заметить, что благодаря функциональной окраске график поверхности гораздо более выразителен, чем при построениях без такой окраски, представленных ранее (причем даже в том случае, когда цветной график печатается в черно-белом виде).
В следующем примере используется функциональная окраска оттенками серого цвета с выводом шкалы цветовых оттенков:
» [X,Y]=meshgrid([-3:0.1:3]);
» Z=sin(X)./(X.^2+Y.^2+0.3);
» surf(X.Y.Z)
» colormap(gray)
» shading interp
» colorbar
В этом примере команда colormap(gray) задает окраску тонами серого цвета, а команда shading Interp обеспечивает устранение изображения сетки и задает интерполяцию для оттенков цвета объемной поверхности. На рис. 6.26 показан вид графика, построенного в этом примере.
Рис. 6.26. График поверхности с функциональной окраской серым цветом
Обычно применение интерполяции для окраски придает поверхностям и фигурам более реалистичный вид, но фигуры каркасного вида дают более точные количественные данные о каждой точке.