surfl

Объемная поверхностная диаграмма с подсветкой на основе палитры

Описание

пример

surfl(X,Y,Z) создает трехмерную объемную поверхностную диаграмму с подсветками от источника света. А графики функций значения в матрице Z как высоты над сеткой в плоскости x - y заданные X и Y. Функция использует направление по умолчанию для источника света и коэффициенты подсветки по умолчанию для модели затенения. Это устанавливает цветовые данные для поверхности, чтобы быть отражением поверхности.

Из-за способа вычисления векторов поверхность-нормаль, surfl требует матрицы, которые по крайней мере 3 на 3.

surfl(Z) создает поверхность и использует индексы столбцов и строк элементов в Z как x - и y - координаты.

пример

surfl(___,'light') создает поверхность с подсветками из MATLAB® световой объект. Это приводит к различным результатам от метода подсветки на основе палитры по умолчанию. Задайте 'light' объект как последний входной параметр.

пример

surfl(___,s) дополнительно задает направление источника света.

пример

surfl(X,Y,Z,s,k) дополнительно задает константу отражения.

surfl(ax,___) графики в осях заданные ax вместо текущей системы координат. Задайте оси в качестве первого входного параметра.

пример

s = surfl(___) возвращает объект поверхности графика. Если источник света задан как световой объект, используя 'light' опция, затем s возвращается как графический массив, который включает в себя объект поверхности графика и объект света. Использование s для изменения поверхности и объекта света после создания. Список свойств см. в разделе «Свойства поверхности» и «Свойства света».

Примеры

свернуть все

Создайте три матрицы одинакового размера. Затем постройте график как поверхности с помощью подсветки на основе палитры. Поверхность использует Z для высоты и обоих Z и источник света для цвета.

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surfl(X,Y,Z)

Figure contains an axes. The axes contains an object of type surface.

Создайте три матрицы одинакового размера. Затем постройте график как поверхности с подсветками от светового объекта MATLAB ®. Поверхность использует Z для высоты и обоих Z и световой объект для цвета. Функция возвращает массив, содержащий объект поверхности и объект подсветки. Присвойте его переменной sl.

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
sl = surfl(X,Y,Z,'light');

Figure contains an axes. The axes contains an object of type surface.

Индексируйте в sl для доступа и изменения свойств объекта поверхности и объекта света после их создания. Доступ к объемной поверхностной диаграмме возможен как sl(1) и световой объект как sl(2). Например, измените цвет света путем установки Color свойство светового объекта.

sl(2).Color = 'r';

Figure contains an axes. The axes contains an object of type surface.

Создайте три матрицы одинакового размера для построения графика как поверхности. Укажите направление источника света, чтобы он имел азимут 45 степеней и повышение 20 степеней. Увеличение отражающей способности поверхности путем увеличения вклада окружающего света и уменьшения смежностей рассеянного и зеркального отражения. Присвойте объект поверхности переменной sl.

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
s = [-45 20];
k = [.65 .4 .3 10];

Постройте график данных с помощью исходного и отражательного векторов.

sl = surfl(X,Y,Z,s,k);

Figure contains an axes. The axes contains an object of type surface.

Использование sl для доступа и изменения свойств объекта поверхности после создания. Например, скрыть ребра можно путем установки EdgeColor свойство.

sl.EdgeColor = 'none';

Figure contains an axes. The axes contains an object of type surface.

Входные параметры

свернуть все

x -cordinates, заданная в виде матрицы того же размера, что и Z, или как вектор с длиной n, где [m,n] = size(Z). Если вы не задаете значения для X и Y, surfl использует векторы (1:n) и (1:m).

Вы можете использовать meshgrid функция для создания X и Y матрицы.

The XData свойство Surface объект сохраняет x -cordinates.

Пример: X = 1:10

Пример: X = [1 2 3; 1 2 3; 1 2 3]

Пример: [X,Y] = meshgrid(-5:0.5:5)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

y -cordinates, заданная в виде матрицы того же размера, что и Z или как вектор с длиной m, где [m,n] = size(Z). Если вы не задаете значения для X и Y, surfl использует векторы (1:n) и (1:m).

Вы можете использовать meshgrid функция для создания X и Y матрицы.

The YData свойство объекта surface сохраняет y -cordinates .

Пример: Y = 1:10

Пример: Y = [1 1 1; 2 2 2; 3 3 3]

Пример: [X,Y] = meshgrid(-5:0.5:5)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

z -координаты, заданные как матрица. Z должно иметь не менее двух строк и двух столбцов.

The ZData свойство объекта surface сохраняет z -cordinates .

Пример: Z = [1 2 3; 4 5 6]

Пример: Z = sin(x) + cos(y)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Направление от поверхности к источнику света, заданное как двух- или трехэлементный вектор. Вектор имеет вид [sx sy sz] или [azimuth elevation]. Направление по умолчанию 45 ° против часовой стрелки от текущего направления вида.

Константа отражения, заданная как четырехэлементный вектор. Вектор определяет относительные вклады окружающего света, диффузного отражения, зеркального отражения и коэффициента зеркального блеска с помощью формы [ka kd ks shine]. По умолчанию k является [.55 .6 .4 10].

Графическое изображение осей, заданное как axes объект. Если вы не задаете оси, то surfl графики в текущей системе координат.

Совет

  • Упорядоченное расположение точек в X, Y, и Z матрицы определяют внутреннюю и внешнюю часть параметрических поверхностей. Чтобы противоположная сторона поверхности отражала источник света, используйте surfl(X',Y',Z').

Расширенные возможности

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