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

Построение поверхности с окраской

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

Иллюстрированный самоучитель по MatLab › Обычная графика MATLAB › Построение поверхности с окраской
Рис. 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 показан вид графика, построенного в этом примере.

Иллюстрированный самоучитель по MatLab › Обычная графика MATLAB › Построение поверхности с окраской
Рис. 6.26. График поверхности с функциональной окраской серым цветом

Обычно применение интерполяции для окраски придает поверхностям и фигурам более реалистичный вид, но фигуры каркасного вида дают более точные количественные данные о каждой точке.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.