exponenta event banner

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

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

XData имущества Surface объект сохраняет координаты X.

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

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

YData свойство объекта поверхности сохраняет координаты Y.

Пример: 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 должен иметь не менее двух строк и двух столбцов.

ZData свойство объекта поверхности сохраняет координаты Z.

Пример: 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