Построение
поверхности с окраской
Особенно наглядное
представление о поверхностях дают сетчатые графики, использующие функциональную
закраску ячеек. Например, цвет окраски поверхности
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.
График поверхности с функциональной окраской
серым цветом
Обычно применение
интерполяции для окраски придает поверхностям и фигурам более реалистичный вид,
но фигуры каркасного вида дают более точные количественные данные о каждой точке.
Содержание раздела