поверхность

Создание объекта "поверхность"

Синтаксис

surface(Z)
surface(Z,C)
surface(X,Y,Z)
surface(X,Y,Z,C)
surface(x,y,Z)
surface(...'PropertyName',PropertyValue,...)
surface(ax,...)
h = surface(...)

Свойства

Для списка свойств смотрите Surface Properties.

Описание

surface является низкоуровневой функцией для создания поверхностных графических объектов. Поверхности являются графиками матричных данных, созданных с помощью индексов строки и столбца каждого элемента как x-и y-координаты и значение каждого элемента как z-координата.

surface(Z) строит поверхность, заданную матричным Z. Здесь, Z является однозначной функцией, заданной по геометрически прямоугольной сетке. Значения в Z могут быть числовыми, datetime, длительность или категориальные значения.

surface(Z,C) строит поверхность, заданную Z, и окрашивает его согласно данным в C (см. "Примеры").

surface(X,Y,Z) Z = C использования, таким образом, цвет пропорционален поверхностной высоте выше x-y плоскости.

surface(X,Y,Z,C) строит параметрическую поверхность, заданную X, Y и Z, с цветом, заданным C. Значения в X, Y и Z могут быть числовыми, datetime, длительность или категориальные значения.

surface(x,y,Z), surface(x,y,Z,C) заменяет первые два матричных аргумента на векторы и должен иметь length(x) = n и length(y) = m где [m,n] = size(Z). В этом случае вершины поверхностных фасетов, утраивает (x(j),y(i),Z(i,j)). Обратите внимание на то, что x соответствует столбцам Z, и y соответствует строкам Z. Для полного обсуждения параметрических поверхностей смотрите, что surf функционирует. Значения в x, y и Z могут быть числовыми, datetime, длительность или категориальные значения.

surface(...'PropertyName',PropertyValue,...) следует за X, Y, Z и аргументами C с именем свойства / пары значения свойства, чтобы задать дополнительные поверхностные свойства. Для описания свойств смотрите Surface Properties.

surface(ax,...) создает поверхность в осях, заданных ax вместо в текущей системе координат (gca). Опция ax может предшествовать любой комбинации входных аргументов в предыдущих синтаксисах.

h = surface(...) возвращает примитивный объект подложки.

Примеры

свернуть все

Постройте функцию z=xe-x2-y2 на области -2x2 и -2y2. Используйте meshgrid, чтобы задать X и Y. Затем задайте Z и создайте объемную поверхностную диаграмму. Измените представление графика с помощью view.

[X,Y] = meshgrid(-2:0.2:2,-2:0.2:2);
Z = X.*exp(-X.^2 - Y.^2);
figure
surface(X,Y,Z)
view(3)

surface создает график из соответствующих значений в X, Y и Z. Если вы не задаете цветные данные C, то surface использует Z, чтобы определить цвет, таким образом, цвет пропорционален поверхностной высоте.

Используйте функцию peaks, чтобы задать XD, YD и ZD как 25 25 матрицы.

[XD,YD,ZD] = peaks(25);

Загрузите набор данных clown, чтобы получить данные изображения X и его связанная палитра, map. Инвертируйте X с помощью flipud, функционируют и задают инвертированное изображение как цветные данные для поверхности, C.

load clown
C = flipud(X);

Создайте объемную поверхностную диаграмму и отобразите изображение вдоль поверхности. Начиная с поверхностных данных ZD и цветные данные C имеет различные размерности, необходимо установить поверхностный FaceColor на 'texturemap'.

figure
surface(XD,YD,ZD,C,...
    'FaceColor','texturemap',...
    'EdgeColor','none',...
    'CDataMapping','direct')
colormap(map)
view(-35,45)

Данные клоуна обычно просматриваются с функцией image, которая использует нумерацию оси 'ij'. Этот пример инвертирует данные изображения в вертикальном направлении с помощью flipud.

Примеры

Для примеров смотрите Данные о Представлении как Поверхность.

Советы

surface не уважает настройки фигуры и свойств NextPlot осей. Это просто добавляет объект подложки в текущую систему координат.

Если вы не задаете отдельные цветные данные (C), MATLAB® использует матрицу (Z), чтобы определить окраску поверхности. В этом случае цвет пропорционален значениям Z. Можно задать отдельную матрицу, чтобы окрасить поверхность независимо от данных, задающих область поверхности.

Можно задать свойства как имя свойства / пары значения свойства или использующий запись через точку.

surface обеспечивает формы удобства, которые позволяют вам не использовать имя свойства XData, YData, ZData и свойств CData. Например,

surface('XData',X,'YData',Y,'ZData',Z,'CData',C)

эквивалентно

surface(X,Y,Z,C)

Когда вы задаете только один матричный входной параметр,

surface(Z)

MATLAB присваивает свойства данных, как будто вы задали

surface('XData',[1:size(Z,2)],...
   'YData',[1:size(Z,1)],...
   'ZData',Z,...
   'CData',Z)

axis, caxis, colormap, hold, shading и команды view устанавливают графические свойства, которые влияют на поверхности. Можно также установить и запросить поверхностные значения свойств после создания их использующий запись через точку.

Представлено до R2006a