15.2.2 Трехмерные графики
Функция mesh создаёт графики поверхностей сетки. Например,
tx = ty = linspace (-8, 8, 41)';
[xx, yy] = meshgrid (tx, ty);
r = sqrt (xx .^ 2 + yy .^ 2) + eps;
tz = sin (r) ./ r;
mesh (tx, ty, tz);
xlabel ("tx");
ylabel ("ty");
zlabel ("tz");
title ("3-D Sombrero plot"); производит знакомый график «соболь» показанный на рисунке 15.5. Обратите внимание на использование функции meshgrid для создания матриц координат X и Y для построения данных Z. Функция ndgrid подобна функции meshgrid, но работает с N-мерными матрицами.
Рисунок 15.5: График сетки.
Функция meshc похожа на mesh, но также создает график контуров поверхности.
Функция plot3 отображает произвольные трехмерные данные, не требуя образования поверхности. Например,
t = 0:0.1:10*pi;
r = linspace (0, 1, numel (t));
z = linspace (0, 1, numel (t));
plot3 (r.*sin (t), r.*cos (t), z);
xlabel ("r.*sin (t)");
ylabel ("r.*cos (t)");
zlabel ("z");
title ("plot3 display of 3-D helix"); отображает спираль в трех измерениях, показанную на рисунке 15.6.
Рисунок 15.6: Трехмерная спираль.
Наконец, функция view изменяет точку зрения для трехмерных графиков.
- mesh (x, y, z)
- mesh (z)
- mesh (…, c)
- mesh (…, prop, val, …)
- mesh (hax, …)
- h = mesh (…)
-
Построение 3D каркаса сетки.
Каркас сетки строится с использованием прямоугольников. Вершины прямоугольников [x, y] обычно являются результатом
meshgrid. над 2D прямоугольной областью в плоскости x-y. z определяет высоту каждой вершины над плоскостью. Если задана только одна матрица z, то она отображается на сеткеx = 1:columns (z), y = 1:rows (z). Таким образом, столбцы z соответствуют различным значениям x, а строки z - различным значениям y.Цвет сетки вычисляется путем линейного масштабирования значений z для соответствия диапазону текущей цветовой карты. Используйте
caxisи/или измените цветовую карту для управления внешним видом.Цвет сетки можно указать независимо от z путем предоставления цветовой матрицы c.
Любые пары свойство/значение передаются непосредственно в объект поверхности.
Если первый аргумент hax является дескриптором осей, то график будет построен в этих осях, а не в текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h - это дескриптор графического объекта созданной поверхности.
См. также: ezmesh, meshc, meshz, trimesh, contour, surf, surface, meshgrid, hidden, shading, colormap, caxis.
- meshc (x, y, z)
- meshc (z)
- meshc (…, c)
- meshc (…, prop, val, …)
- meshc (hax, …)
- h = meshc (…)
-
Построение 3D сетки с контурными линиями.
Трехмерная сетка строится с использованием прямоугольников. Вершины прямоугольников [x, y] обычно являются результатом
meshgrid. над двумерной прямоугольной областью в плоскости x-y. z определяет высоту каждой вершины над плоскостью. Если задана только матрица z, то она строится на сеткеx = 1:columns (z), y = 1:rows (z). Таким образом, столбцы z соответствуют различным значениям x, а строки z - различным значениям y.Цвет сетки вычисляется путём линейного масштабирования значений z в соответствии с диапазоном текущей цветовой карты. Используйте
caxisи/или измените цветовой масштаб для управления внешним видом.Цвет сетки можно задать независимо от z, предоставив матрицу цвета c.
Любые пары свойство/значение передаются непосредственно в объект поверхности.
Если первый аргумент hax является дескриптором осей, то построение выполняется на этих осях, а не на текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h представляет собой 2-элементный вектор с дескриптором графического объекта созданной поверхности и созданного контурного графика.
См. также: ezmeshc, mesh, meshz, contour, surfc, surface, meshgrid, hidden, shading, colormap, caxis.
- meshz (x, y, z)
- meshz (z)
- meshz (…, c)
- meshz (…, prop, val, …)
- meshz (hax, …)
- h = meshz (…)
-
Построение 3D сетки с окружающей завесой.
Трехмерная сетка строится с использованием прямоугольников. Вершины прямоугольников [x, y] обычно являются результатом
meshgrid. над двумерной прямоугольной областью в плоскости x-y. z определяет высоту каждой вершины над плоскостью. Если задана только матрица z, то она строится на сеткеx = 1:columns (z), y = 1:rows (z). Таким образом, столбцы z соответствуют различным значениям x, а строки z - различным значениям y.Цвет сетки вычисляется путём линейного масштабирования значений z в соответствии с диапазоном текущей цветовой карты. Используйте
caxisи/или измените цветовой масштаб для управления внешним видом.Цвет сетки можно задать независимо от z, предоставив матрицу цвета c.
Любые пары свойство/значение передаются непосредственно в объект поверхности.
Если первый аргумент hax является дескриптором осей, то построение выполняется на этих осях, а не на текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h представляет собой дескриптор графического объекта созданной поверхности.
См. также: mesh, meshc, contour, surf, surface, waterfall, meshgrid, hidden, shading, colormap, caxis.
- surf (x, y, z)
- surf (z)
- surf (…, c)
- surf (…, prop, val, …)
- surf (hax, …)
- h = surf (…)
-
Построение 3D сетки поверхности.
Поверхностная сетка строится с использованием затенённых прямоугольников. Вершины прямоугольников [x, y] обычно являются результатом
meshgrid. над двумерной прямоугольной областью в плоскости x-y. z определяет высоту каждой вершины над плоскостью. Если задана только матрица z, то она строится на сеткеx = 1:columns (z), y = 1:rows (z). Таким образом, столбцы z соответствуют различным значениям x, а строки z - различным значениям y.Цвет поверхности вычисляется путём линейного масштабирования значений z в соответствии с диапазоном текущей цветовой карты. Используйте
caxisи/или измените цветовой масштаб для управления внешним видом.Цвет поверхности можно задать независимо от z, предоставив матрицу цвета c.
Любые пары свойство/значение передаются непосредственно в объект поверхности.
Если первый аргумент hax является дескриптором осей, то построение выполняется на этих осях, а не на текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h представляет собой дескриптор графического объекта созданной поверхности.
Примечание: точный вид поверхности можно контролировать с помощью команды
shadingили с помощьюsetдля управления свойствами объекта поверхности.См. также: ezsurf, surfc, surfl, surfnorm, trisurf, contour, mesh, surface, meshgrid, hidden, shading, colormap, caxis.
- surfc (x, y, z)
- surfc (z)
- surfc (…, c)
- surfc (…, prop, val, …)
- surfc (hax, …)
- h = surfc (…)
-
Построение 3D сетки поверхности с контурными линиями.
Поверхностная сетка строится с использованием затенённых прямоугольников. Вершины прямоугольников [x, y] обычно являются результатом
meshgrid. над двумерной прямоугольной областью в плоскости x-y. z определяет высоту каждой вершины над плоскостью. Если задана только матрица z, то она строится на сеткеx = 1:columns (z), y = 1:rows (z). Таким образом, столбцы z соответствуют различным значениям x, а строки z - различным значениям y.Цвет поверхности вычисляется путём линейного масштабирования значений z в соответствии с диапазоном текущей цветовой карты. Используйте
caxisи/или измените цветовой масштаб для управления внешним видом.Цвет поверхности можно задать независимо от z, предоставив матрицу цвета c.
Любые пары свойство/значение передаются непосредственно в объект поверхности.
Если первый аргумент hax является дескриптором осей, то построение выполняется на этих осях, а не на текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h представляет собой дескриптор графического объекта созданной поверхности.
Примечание: точный вид поверхности можно контролировать с помощью команды
shadingили с помощьюsetдля управления свойствами объекта поверхности.См. также: ezsurfc, surf, surfl, surfnorm, trisurf, contour, mesh, surface, meshgrid, hidden, shading, colormap, caxis.
- surfl (z)
- surfl (x, y, z)
- surfl (…, lsrc)
- surfl (x, y, z, lsrc, P)
- surfl (…, "cdata")
- surfl (…, "light")
- surfl (hax, …)
- h = surfl (…)
-
Постройте 3-мерную поверхность с затенением, основанным на различных моделях освещения.
Сеточная поверхность изображается с помощью затененных прямоугольников. Вершины прямоугольников [x, y] обычно являются результатом
meshgrid. над двумерной прямоугольной областью в плоскости x-y. z определяет высоту над плоскостью каждой вершины. Если задана только одна матрица z, то она изображается на сеткеx = 1:columns (z), y = 1:rows (z). Таким образом, столбцы z соответствуют различным значениям x, а строки z — различным значениям y.По умолчанию режим освещения
"cdata", изменяет свойство cdata объекта поверхности, чтобы создать впечатление освещенной поверхности.Альтернативный режим
"light"создает объект света для освещения поверхности.Расположение источника света может быть задано с помощью lsrc, которое может быть 2-элементным вектором [азимут, возвышение] в градусах или 3-элементным вектором [lx, ly, lz]. По умолчанию значение повернуто на 45 градусов против часовой стрелки относительно текущего вида.
Свойства материала поверхности могут быть заданы с помощью 4-элементного вектора P = [AM D SP exp], который по умолчанию равен p = [0.55 0.6 0.4 10].
-
"AM"интенсивность рассеянного света -
"D"интенсивность диффузного отражения -
"SP"интенсивность зеркального отражения -
"EXP"показатель блеска
Если первый аргумент hax является дескриптором осей, то построение выполняется в этих осях, а не в текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h — это дескриптор графического объекта созданной поверхности.
Пример:
colormap (bone (64)); surfl (peaks); shading interp;
См. также: diffuse, specular, surf, shading, colormap, caxis.
-
- surfnorm (x, y, z)
- surfnorm (z)
- surfnorm (…, prop, val, …)
- surfnorm (hax, …)
- [nx, ny, nz] = surfnorm (…)
-
Найдите векторы, нормальные к сетчатой поверхности.
Если x и y являются векторами, то типичная вершина — (x(j), y(i), z(i,j)). Таким образом, столбцы z соответствуют различным значениям x, а строки z — различным значениям y. Если задан только один вход z, то x принимается как
1:columns (z)и y как1:rows (z).Если не запрашиваются возвращаемые значения, то строится график поверхности с векторами нормали к поверхности.
Любые пары свойство/значение ввода присваиваются объекту поверхности.
Если первый аргумент hax является дескриптором осей, то построение выполняется в этих осях, а не в текущих осях, возвращаемых
gca.Если запрашиваются возвращаемые аргументы, то компоненты векторов нормали возвращаются в nx, ny и nz, и построение не выполняется. Векторы нормали не нормированы (модуль != 1). Для нормализации используйте
len = sqrt (nx.^2 + ny.^2 + nz.^2); nx ./= len; ny ./= len; nz ./= len;
Пример использования
surfnormsurfnorm (peaks (25));
Алгоритм: векторы нормали вычисляются путем взятия векторного произведения диагоналей каждой из четырёхугольных граней в сетке, чтобы найти векторы нормали в центре каждой грани. Затем для каждой точки сетки усредняются четыре ближайших вектора нормали, чтобы получить окончательную нормаль к поверхности в точке сетки.
Для объектов поверхности свойство
"VertexNormals"содержит эквивалентную информацию, за исключением, возможно, окрестностей границы поверхности, где разные схемы интерполяции могут давать несколько отличающиеся значения.См. также: isonormals, quiver3, surf, meshgrid.
- fv = isosurface (v, isoval)
- fv = isosurface (v)
- fv = isosurface (x, y, z, v, isoval)
- fv = isosurface (x, y, z, v)
- fvc = isosurface (…, col)
- fv = isosurface (…, "noshare")
- fv = isosurface (…, "verbose")
- [f, v] = isosurface (…)
- [f, v, c] = isosurface (…)
- isosurface (…)
-
Вычисление изоповерхности 3-мерных данных объёма.
Изоповерхность соединяет точки с одинаковым значением и аналогична контурному графику, но в трёх измерениях.
Входной аргумент v — это трёхмерный массив, содержащий данные, дискретизированные по объёму.
Вход isoval — скаляр, указывающий значение для изоповерхности. Если isoval опущено или пусто, значение для изоповерхности определяется из v.
При вызове с одним выходным аргументом
isosurfaceвозвращает структуру fv, которая содержит поля faces и vertices, вычисленные в точках[x, y, z] = meshgrid (1:l, 1:m, 1:n)где[l, m, n] = size (v). Выход fv может быть напрямую использован в качестве входных данных для функцииpatch.При вызове с дополнительными входными аргументами x, y и z, которые являются трёхмерными массивами того же размера, что и v, или векторами с длинами, соответствующими размерностям v, данные объёма берутся в указанных точках. Если x, y или z пусты, сетка соответствует индексам (
1:n) в соответствующем направлении (см. meshgrid).Необязательный входной аргумент col, который является трёхмерным массивом того же размера, что и v, определяет раскрашивание изоповерхности. Данные цвета интерполируются по мере необходимости, чтобы соответствовать isoval. В этом случае выходная структура имеет дополнительное поле facevertexcdata.
Если задан строковый аргумент
"noshare", вершины могут возвращаться несколько раз для различных граней. По умолчанию поведение заключается в устранении вершин, общих для смежных граней сunique, что может быть трудоёмким.Строковый входной аргумент
"verbose"поддерживается для совместимости с MATLAB, но не оказывает никакого влияния.Все строковые аргументы должны передаваться после других аргументов.
При вызове с двумя или тремя выходными аргументами, возвращаются информация о гранях f, вершинах v и данных цвета c в виде отдельных массивов, а не в виде одной структуры.
При вызове без выходных аргументов, геометрия изоповерхности непосредственно строится с помощью команды
patchи к осям добавляется объект света, если он ещё не присутствует.Например,
[x, y, z] = meshgrid (1:5, 1:5, 1:5); v = rand (5, 5, 5); isosurface (x, y, z, v, .5);
непосредственно нарисует случайную геометрию изоповерхности в окне графики.
Пример геометрии изоповерхности с различной дополнительной раскраской:
N = 15; # Increase number of vertices in each direction iso = .4; # Change isovalue to .1 to display a sphere lin = linspace (0, 2, N); [x, y, z] = meshgrid (lin, lin, lin); v = abs ((x-.5).^2 + (y-.5).^2 + (z-.5).^2); figure (); subplot (2,2,1); view (-38, 20); [f, vert] = isosurface (x, y, z, v, iso); p = patch ("Faces", f, "Vertices", vert, "EdgeColor", "none"); pbaspect ([1 1 1]); isonormals (x, y, z, v, p) set (p, "FaceColor", "green", "FaceLighting", "gouraud"); light ("Position", [1 1 5]); subplot (2,2,2); view (-38, 20); p = patch ("Faces", f, "Vertices", vert, "EdgeColor", "blue"); pbaspect ([1 1 1]); isonormals (x, y, z, v, p) set (p, "FaceColor", "none", "EdgeLighting", "gouraud"); light ("Position", [1 1 5]); subplot (2,2,3); view (-38, 20); [f, vert, c] = isosurface (x, y, z, v, iso, y); p = patch ("Faces", f, "Vertices", vert, "FaceVertexCData", c, ... "FaceColor", "interp", "EdgeColor", "none"); pbaspect ([1 1 1]); isonormals (x, y, z, v, p) set (p, "FaceLighting", "gouraud"); light ("Position", [1 1 5]); subplot (2,2,4); view (-38, 20); p = patch ("Faces", f, "Vertices", vert, "FaceVertexCData", c, ... "FaceColor", "interp", "EdgeColor", "blue"); pbaspect ([1 1 1]); isonormals (x, y, z, v, p) set (p, "FaceLighting", "gouraud"); light ("Position", [1 1 5]);См. также: isonormals, isocolors, isocaps, smooth3, reducevolume, reducepatch, patch.
- vn = isonormals (val, vert)
- vn = isonormals (val, hp)
- vn = isonormals (x, y, z, val, vert)
- vn = isonormals (x, y, z, val, hp)
- vn = isonormals (…, "negate")
- isonormals (val, hp)
- isonormals (x, y, z, val, hp)
- isonormals (…, "negate")
-
Вычисление нормалей к изоповерхности.
Векторы нормали vn вычисляются из градиента трёхмерного массива val (размер: lxmxn), содержащего данные для геометрии изоповерхности. Нормали направлены к меньшим значениям в val.
Если вызывается с одним выходным аргументом vn, и второй входной аргумент vert содержит вершины изоповерхности, то нормали vn вычисляются в вершинах vert на сетке, заданной
[x, y, z] = meshgrid (1:l, 1:m, 1:n). Выходной аргумент vn имеет тот же размер, что и vert, и может использоваться для задания свойства"VertexNormals"соответствующего объекта patch.Если вызывается с дополнительными входными аргументами x, y и z, которые являются трёхмерными массивами того же размера, что и val, то данные объёма берутся в этих точках. Вместо данных вершин vert можно передать дескриптор объекта patch hp в функцию.
Если последним входным аргументом является строка
"negate", вычисляются обратные векторы нормалей изоповерхности (т.е. направленные к большим значениям в val).Если не задан выходной аргумент, свойство
"VertexNormals"объекта patch, связанного с дескриптором hp, изменяется непосредственно.См. также: isosurface, isocolors, smooth3.
- fvc = isocaps (v, isoval)
- fvc = isocaps (v)
- fvc = isocaps (x, y, z, v, isoval)
- fvc = isocaps (x, y, z, v)
- fvc = isocaps (…, which_caps)
- fvc = isocaps (…, which_plane)
- fvc = isocaps (…, "verbose")
- [faces, vertices, fvcdata] = isocaps (…)
- isocaps (…)
-
Создать торцевые крышки для изоповерхностей 3D данных.
Эта функция помещает крышки в открытые концы изоповерхностей.
Входной аргумент v представляет собой трехмерный массив, содержащий данные, сэмплированные по объёму.
Входной isoval — скаляр, определяющий значение для изоповерхности. Если isoval опущен или пуст, «хорошее» значение для изоповерхности определяется из v.
При вызове с одним выходным аргументом,
isocapsвозвращает структуру массивов fvc с полями:faces,vertices, иfacevertexcdata. Результаты вычисляются в точках[x, y, z] = meshgrid (1:l, 1:m, 1:n)где[l, m, n] = size (v). Выход fvc может быть напрямую использован в качестве входных данных для функцииpatch.Если вызывается с дополнительными входными аргументами x, y и z, которые представляют собой трехмерные массивы того же размера, что и v, или векторы с длинами, соответствующими измерениям v, то данные объема берутся в указанных точках. Если x, y или z пустые, сетка соответствует индексам (
1:n) в соответствующем направлении (см. meshgrid).Необязательный параметр which_caps может принимать одно из следующих строковых значений, определяющих, как будут заключены данные:
-
"above","a"(по умолчанию) -
для торцевых крышек, которые охватывают данные выше isoval.
-
"below","b" для торцевых крышек, которые охватывают данные ниже isoval.
Необязательный параметр which_plane может принимать одно из следующих строковых значений, чтобы определить, какая торцевая крышка должна быть нарисована:
-
"all"(по умолчанию) -
для всех торцевых крышек.
"xmin"-
для торцевых крышек на нижней x-плоскости данных.
"xmax"-
для торцевых крышек на верхней x-плоскости данных.
"ymin"-
для торцевых крышек на нижней y-плоскости данных.
"ymax"-
для торцевых крышек на верхней y-плоскости данных.
"zmin"-
для торцевых крышек на нижней z-плоскости данных.
"zmax"для торцевых крышек на верхней z-плоскости данных.
Строковый входной аргумент
"verbose"поддерживается для совместимости с MATLAB, но не имеет эффекта.Если вызывается с двумя или тремя выходными аргументами, данные для граней faces, вершин vertices и цветных данных facevertexcdata возвращаются в отдельных массивах вместо одной структуры.
Если вызывается без выходных аргументов, торцевые крышки рисуются непосредственно в текущем графике с помощью команды
patch.См. также: isosurface, isonormals, patch.
-
- cdat = isocolors (c, v)
- cdat = isocolors (x, y, z, c, v)
- cdat = isocolors (x, y, z, r, g, b, v)
- cdat = isocolors (r, g, b, v)
- cdat = isocolors (…, p)
- isocolors (…)
-
Вычислить цвета изоповерхности.
Если вызывается с одним выходным аргументом, и первый входной аргумент c представляет собой трехмерный массив, содержащий индексированные цветовые значения, а второй входной аргумент v — вершины геометрии изоповерхности, то возвращается матрица cdat с информацией о цветовых данных для геометрии в вычисленных точках
[x, y, z] = meshgrid (1:l, 1:m, 1:n). Выходной аргумент cdat может быть использован для ручного задания свойства"FaceVertexCData"объекта патча изоповерхности.Если вызывается с дополнительными входными аргументами x, y и z, которые являются трехмерными массивами того же размера, что и c, то цветовые данные берутся в этих заданных точках.
Вместо индексированных цветовых данных c,
isocolorsтакже можно вызвать с RGB значениями r, g, b. Если входные аргументы x, y, z не заданы, то используются вычисленные значенияmeshgrid.Необязательно, дескриптор патча p может быть задан в качестве последнего входного аргумента во всех вариантах вызова функции, и данные вершин будут извлечены из объекта патча изоповерхности. Наконец, если не указан выходной аргумент, то цвета патча, заданного дескриптором патча p, изменяются.
См. также: isosurface, isonormals.
- smoothed_data = smooth3 (data)
- smoothed_data = smooth3 (data, method)
- smoothed_data = smooth3 (data, method, sz)
- smoothed_data = smooth3 (data, method, sz, std_dev)
-
Сгладить значения трехмерной матрицы data.
Эта функция может быть использована, например, для уменьшения влияния шума в data перед вычислением изоповерхностей.
data должна быть трехмерной матрицей, не являющейся одиночным элементом. Сглаженные данные из этой матрицы возвращаются в smoothed_data, которая имеет тот же размер, что и data.
Входной параметр method определяет, какой сверточный ядро используется для сглаживания. Возможные варианты:
-
"box","b"(по умолчанию) -
для использования сверточного ядра с резкими краями.
-
"gaussian","g" для использования сверточного ядра, которое представлено функцией распределения некоррелированной тривариантной нормальной функции.
sz — это либо вектор из 3 элементов, представляющий размер сверточного ядра в направлениях x, y и z, либо скаляр, в этом случае используется один и тот же размер во всех трёх направлениях. Значение по умолчанию — 3.
Когда method —
"gaussian", std_dev определяет стандартное отклонение функции тривариантного нормального распределения. std_dev — либо вектор из 3 элементов, представляющий стандартное отклонение гауссова сверточного ядра в направлениях x, y и z, либо скаляр, в этом случае одно и то же значение используется во всех трёх направлениях. Значение по умолчанию — 0,65.См. также: isosurface, isonormals, patch.
-
- [nx, ny, nz, nv] = reducevolume (v, r)
- [nx, ny, nz, nv] = reducevolume (x, y, z, v, r)
- nv = reducevolume (…)
-
Уменьшить объём набора данных в v в соответствии со значениями в r.
v — это матрица, которая не является одиночным элементом в первых 3 измерениях.
r может быть либо вектором из 3 элементов, представляющим коэффициенты уменьшения в направлениях x, y и z, либо скаляром, в этом случае один и тот же коэффициент уменьшения используется во всех трёх направлениях.
reducevolumeуменьшает количество элементов v, беря только каждый r-ый элемент в соответствующем измерении.Необязательно, x, y и z могут быть предоставлены для представления набора координат v. Они могут быть либо матрицами того же размера, что и v, или векторами с размерами в соответствии с измерениями v, в этом случае они расширяются до матриц (см. meshgrid).
Если
reducevolumeвызывается с двумя аргументами, то x, y и z предполагаются соответствующими индексам v.Уменьшенная матрица возвращается в nv.
Необязательно, уменьшенный набор координат возвращается в nx, ny и nz, соответственно.
Примеры:
v = reshape (1:6*8*4, [6 8 4]); nv = reducevolume (v, [4 3 2]);
v = reshape (1:6*8*4, [6 8 4]); x = 1:3:24; y = -14:5:11; z = linspace (16, 18, 4); [nx, ny, nz, nv] = reducevolume (x, y, z, v, [4 3 2]);
См. также: isosurface, isonormals.
- reduced_fv = reducepatch (fv)
- reduced_fv = reducepatch (faces, vertices)
- reduced_fv = reducepatch (patch_handle)
- reducepatch (patch_handle)
- reduced_fv = reducepatch (…, reduction_factor)
- reduced_fv = reducepatch (…, "fast")
- reduced_fv = reducepatch (…, "verbose")
- [reduced_faces, reduces_vertices] = reducepatch (…)
-
Уменьшите количество граней и вершин в объекте заплатки, сохранив при этом общую форму заплатки.
Входящая заплатка может быть представлена структурой fv с полями
facesиvertices, двумя матрицами faces и vertices (см., например, результатisosurface), или дескриптором объекта заплатки patch_handle (см. patch).Количество граней и вершин в заплатке уменьшается путем итеративного схлопывания кратчайшего ребра заплатки до его середины (как обсуждается, например, здесь: https://libigl.github.io/libigl/tutorial/tutorial.html#meshdecimation).
В настоящее время поддерживаются только заплатки, состоящие из треугольников. Результирующая заплатка также состоит только из треугольников.
Если
reducepatchвызывается с дескриптором корректной заплатки patch_handle и без выходных аргументов, то заданная заплатка обновляется немедленно.Если reduction_factor опущен, результирующая структура reduced_fv включает приблизительно 50% граней исходной заплатки. Если reduction_factor — дробь от 0 (исключая) до 1 (исключая), определяется заплатка с приблизительно соответствующей долей граней. Если reduction_factor — целое число, большее или равное 1, результирующая заплатка имеет приблизительно reduction_factor граней. В зависимости от геометрии заплатки, полученное количество граней может отличаться от заданного значения reduction_factor. Это особенно актуально, когда обнаруживается много общих вершин.
Для уменьшения необходимо, чтобы вершины соприкасающихся граней были общими. Общие вершины обнаруживаются автоматически. Этот поиск можно пропустить, передав необязательный строковый аргумент
"fast".С помощью необязательных строковых аргументов
"verbose", в командное окно выводятся дополнительные сообщения о статусе.Любые строковые входные аргументы должны передаваться после всех других аргументов.
Если вызывается с одним выходным аргументом, уменьшенные грани и вершины возвращаются в структуре reduced_fv с полями
facesиvertices(см. опцию с одним выходным значениемisosurface).Если вызывается с двумя выходными аргументами, уменьшенные грани и вершины возвращаются в двух отдельных матрицах reduced_faces и reduced_vertices.
См. также: isosurface, isonormals, reducevolume, patch.
- shrinkfaces (p, sf)
- nfv = shrinkfaces (p, sf)
- nfv = shrinkfaces (fv, sf)
- nfv = shrinkfaces (f, v, sf)
- [nf, nv] = shrinkfaces (…)
-
Уменьшите размер граней в заплатке на коэффициент уменьшения sf.
Объект заплатки можно указать с помощью дескриптора графического объекта (p), структуры заплатки (fv) с полями
"faces"и"vertices", или в виде двух отдельных матриц (f, v) граней и вершин.Коэффициент уменьшения sf — положительное число, определяющее процент от исходной площади, который займёт новая грань. Если коэффициент не задан, значение по умолчанию — 0,3 (уменьшение до 30% от исходного размера). Значение коэффициента больше 1,0 приведёт к увеличению граней.
При указании в качестве первого входного аргумента дескриптора заплатки и отсутствии выходных параметров, выполните уменьшение граней заплатки на месте и перерисуйте заплатку.
Если вызывается с одним выходным аргументом, верните структуру с полями
"faces","vertices", и"facevertexcdata", содержащими данные после уменьшения. Эта структура может быть напрямую использована в качестве входного аргумента для функцииpatch.Внимание:: Выполнение операции уменьшения на гранях, которые не являются выпуклыми, может привести к нежелательным результатам.
Пример: треугольная 3/4 окружность и соответствующая уменьшенная версия.
[phi r] = meshgrid (linspace (0, 1.5*pi, 16), linspace (1, 2, 4)); tri = delaunay (phi(:), r(:)); v = [r(:).*sin(phi(:)) r(:).*cos(phi(:))]; clf () p = patch ("Faces", tri, "Vertices", v, "FaceColor", "none"); fv = shrinkfaces (p); patch (fv) axis equal grid onСм. также: patch.
- diffuse (sx, sy, sz, lv)
-
Вычислите интенсивность диффузного отражения поверхности, определяемой элементами вектора нормали sx, sy, sz.
Вектор расположения источника света lv может быть задан как двумерный вектор [азимут, возвышение] в градусах или как трехмерный вектор [x, y, z].
- specular (sx, sy, sz, lv, vv)
- specular (sx, sy, sz, lv, vv, se)
-
Вычислите интенсивность зеркального отражения поверхности, определяемой элементами вектора нормали sx, sy, sz, используя приближение Фонга.
Векторы расположения источника света и наблюдателя задаются соответственно параметрами lv и vv. Векторы расположения могут быть заданы как двумерные векторы [азимут, возвышение] в градусах или как трехмерные векторы [x, y, z].
Необязательный шестой аргумент задает показатель зеркальности (разброс) se. Если он не указан, se по умолчанию равен 10.
- lighting (type)
- lighting (hax, type)
-
Установите освещение графических объектов заплаток или поверхностей.
Допустимые аргументы для type:
"flat"-
Отобразить объекты с эффектами освещения гранями.
"gouraud"-
Отобразить объекты с линейной интерполяцией эффектов освещения между вершинами.
"none"Отобразить объекты без эффектов света и тени.
Если первый аргумент hax — дескриптор осей, то измените эффекты освещения объектов на этих осях, а не на текущих осях, возвращаемых
gca.Эффекты освещения видны только при наличии хотя бы одного объекта света, видимого на тех же осях.
См. также: light, fill, mesh, patch, pcolor, surf, surface, shading.
- material shiny
- material dull
- material metal
- material default
- material ([as, ds, ss])
- material ([as, ds, ss, se])
- material ([as, ds, ss, se, scr])
- material (hlist, …)
- mtypes = material ()
- refl_props = material (mtype_string)
-
Установите свойства отражения для освещения поверхностей и заплаток.
Эта функция изменяет значения амбиентной, диффузной и зеркальной интенсивности, а также показатель зеркальности и отражение цвета зеркальности всех
patchиsurfaceобъектов на текущих осях. Это можно использовать для моделирования, до некоторой степени, свойств отражения определённых материалов, когда используется сlight.При вызове со строкой, вышеупомянутые свойства устанавливаются в соответствии со значениями в следующей таблице:
mtype амбиентная интенсивность диффузная интенсивность зеркальная интенсивность показатель зеркальности отражение цвета зеркальности "shiny"0.3 0.6 0.9 20 1.0 "dull"0.3 0.8 0.0 10 1.0 "metal"0.3 0.3 1.0 25 0.5 "default""default""default""default""default""default"При вызове с вектором из трёх элементов амбиентная, диффузная и зеркальная интенсивность всех
patchиsurfaceобъектов на текущих осях обновляются. Необязательный четвертый элемент вектора обновляет показатель зеркальности, а необязательный пятый элемент обновляет отражение цвета зеркальности.Список дескрипторов графических объектов также можно передать в качестве первого аргумента. В этом случае свойства этих дескрипторов и всех дочерних
patchиsurfaceобъектов будут обновлены.Кроме того,
materialможет вызываться с одним выходным аргументом. Если он вызывается без входных аргументов, возвращается столбец ячеек mtypes со строками всех доступных материалов. Если единственный входной аргумент mtype_string — название материала, возвращается 1x5 вектор ячеек refl_props со свойствами отражения этого материала. В обоих случаях графические свойства не изменяются.
- camlight
- camlight right
- camlight left
- camlight headlight
- camlight (az, el)
- camlight (…, style)
- camlight (hl, …)
- camlight (hax, …)
- h = camlight (…)
-
Добавить объект света на фигуру с помощью простого интерфейса.
При вызове без аргументов объект света добавляется к текущему графику и размещается немного выше и правее текущего положения камеры: это эквивалентно
camlight right. Командыcamlight leftиcamlight headlightведут себя аналогично, причём размещение будет слева от положения камеры или по центру относительно положения камеры.Для большего контроля положение света может быть задано азимутальным углом az и углом возвышения el (в градусах), относительно текущих свойств камеры.
Необязательная строка style указывает, является ли свет локальным точечным источником (
"local", по умолчанию) или размещён на бесконечном расстоянии ("infinite").Если первый аргумент hl является дескриптором объекта света, то действие выполняется над этим объектом, а не создаётся новый объект.
Если первый аргумент hax является дескриптором осей, то новый объект света создаётся в этих осях, а не в текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h — дескриптор графического объекта света. Это может быть использовано для перемещения или дальнейшего изменения свойств объекта света.
Примеры:
Добавление объекта света на график
sphere (36); camlight
Точное позиционирование источника света
camlight (45, 30);
Здесь свет сначала наклоняется вверх (см. camup) от положения камеры (см. campos) на 30 градусов. Затем он поворачивается направо на 45 градусов. Оба поворота выполняются вокруг целевой точки камеры (см. camtarget).
Возвращение дескриптора для дальнейшей работы с объектом света
clf sphere (36); hl = camlight ("left"); set (hl, "color", "r");См. также: light.
- [xx, yy] = meshgrid (x, y)
- [xx, yy, zz] = meshgrid (x, y, z)
- [xx, yy] = meshgrid (x)
- [xx, yy, zz] = meshgrid (x)
-
При заданных векторах координат x и y возвращаются матрицы xx и yy, соответствующие полной двумерной сетке.
Строки xx являются копиями x, а столбцы yy — копиями y. Если y опущено, то предполагается, что оно равно x.
Если необязательный входной параметр z задан или требуется zz, то выходными данными будет полная трёхмерная сетка. Если z опущено, а требуется zz, то предполагается, что оно равно y.
meshgridчаще всего используется для создания входных данных для двумерной или трёхмерной функции, которая будет отображена. Следующий пример создаёт поверхностный график функции «собор».f = @(x,y) sin (sqrt (x.^2 + y.^2)) ./ sqrt (x.^2 + y.^2); range = linspace (-8, 8, 41); [X, Y] = meshgrid (range, range); Z = f (X, Y); surf (X, Y, Z);
Примечание по программированию:
meshgridограничен генерацией двумерных или трёхмерных сеток. Функцияndgridсгенерирует сетки от 1 до N измерений. Однако функции не полностью эквивалентны. Если x — вектор длины M, а y — вектор длины N, тоmeshgridсоздаст выходную сетку NxM.ndgridсоздаст выходную сетку MxN (транспонированная) для тех же входных данных. Некоторые основные функции ожидаютmeshgridвходные данные, а другие —ndgridвходные данные. Обратитесь к документации к данной функции, чтобы определить правильный формат входных данных.
- [y1, y2, …, yn] = ndgrid (x1, x2, …, xn)
- [y1, y2, …, yn] = ndgrid (x)
-
При заданных n векторах x1, …, xn,
ndgridвозвращает n массивов n-мерностей.Элементы i-го выходного аргумента содержат элементы вектора xi, повторённые по всем измерениям, отличным от i-го измерения. Вызов ndgrid с одним входным аргументом x эквивалентен вызову ndgrid со всеми n входными аргументами, равными x:
[y1, y2, …, yn] = ndgrid (x, …, x)
Примечание по программированию:
ndgridочень похожа на функциюmeshgrid, за исключением того, что первые два измерения транспонированы по сравнению сmeshgrid. Некоторые основные функции ожидаютmeshgridвходные данные, а другие —ndgridвходные данные. Обратитесь к документации к данной функции, чтобы определить правильный формат входных данных.См. также: meshgrid.
- plot3 (x, y, z)
- plot3 (x, y, z, prop, value, …)
- plot3 (x, y, z, fmt)
- plot3 (x, cplx)
- plot3 (cplx)
- plot3 (hax, …)
- h = plot3 (…)
-
Построение трёхмерных графиков.
Возможны многие различные комбинации аргументов. Самый простой вид:
plot3 (x, y, z)
в котором аргументы принимаются как вершины точек, которые нужно отобразить в трёх измерениях. Если все аргументы являются векторами одной длины, то рисуется одна непрерывная линия. Если все аргументы — матрицы, то каждый столбец обрабатывается как отдельная линия. Не делается попытки транспонировать аргументы, чтобы количество строк совпало.
Если задано только два аргумента, как
plot3 (x, cplx)
используются действительная и мнимая части второго аргумента как координаты y и z соответственно.
Если задан только один аргумент, как
plot3 (cplx)
действительная и мнимая части аргумента используются как значения y и z, и они выводятся относительно их индекса.
Аргументы также могут быть заданы группами по три как
plot3 (x1, y1, z1, x2, y2, z2, …)
при этом каждая тройка аргументов обрабатывается как отдельная линия или набор линий в трёх измерениях.
Для отображения нескольких групп с одним или двумя аргументами отделяйте каждую группу пустой строкой формата, как
plot3 (x1, c1, "", c2, "", …)
Можно указать несколько пар свойство-значение, которые повлияют на объекты линий, нарисованных
plot3. Если аргумент fmt задан, он отформатирует объекты линий так же, как иplot.Если первый аргумент hax является дескриптором осей, то график строится в этих осях, а не в текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h — дескриптор созданного графика.
Пример:
z = [0:0.05:5]; plot3 (cos (2*pi*z), sin (2*pi*z), z, ";helix;"); plot3 (z, exp (2i*pi*z), ";complex sinusoid;");
- view (azimuth, elevation)
- view ([azimuth elevation])
- view ([x y z])
- view (2)
- view (3)
- view (hax, …)
- [azimuth, elevation] = view ()
-
Запрос или установка точки зрения для текущих осей.
Параметры azimuth и elevation могут быть заданы как два аргумента или как 2-элементный вектор. Точка зрения также может быть задана с использованием декартовых координат x, y и z.
Вызов
view (2)устанавливает точку зрения на azimuth = 0 и elevation = 90, что является значением по умолчанию для двумерных графиков.Вызов
view (3)устанавливает точку зрения на azimuth = -37.5 и elevation = 30, что является значением по умолчанию для трёхмерных графиков.Если первый аргумент hax является дескриптором осей, то операция выполняется над этими осями, а не над текущими осями, возвращаемыми
gca.Если входные данные отсутствуют, возвращаются текущие azimuth и elevation.
- camlookat ()
- camlookat (h)
- camlookat (handle_list)
- camlookat (hax)
-
Перемещение камеры и настройка её свойств для просмотра объектов.
Когда на вход подаётся дескриптор h, камера настраивается на направление на центр ограничивающей рамки h. Положение камеры настраивается так, чтобы ограничивающая рамка приблизительно заполняла поле зрения.
Эта команда фиксирует направление взгляда камеры (
camtarget() - campos()), вектор «вверх» камеры (см. camup) и угол обзора (см. camva). Изменяется целевая точка камеры (см. camtarget) и позиция камеры (см. campos).Если аргумент представляет собой список handle_list, то вычисляется общая ограничивающая рамка для всех объектов, и затем камера настраивается как описано выше.
Если аргумент — объект осей hax, то в качестве handle_list используются дочерние элементы осей. Когда вызывается без входных данных, используется текущая ось (см. gca).
- P = campos ()
- campos ([x y z])
- mode = campos ("mode")
- campos (mode)
- campos (ax, …)
-
Установка или получение положения камеры.
Положение камеры по умолчанию определяется автоматически в зависимости от сцены. Например, чтобы получить положение камеры:
hf = figure(); peaks() p = campos () ⇒ p = -27.394 -35.701 64.079Затем мы можем переместить камеру дальше вверх по оси z:
campos (p + [0 0 10]) campos () ⇒ ans = -27.394 -35.701 74.079После этого изменения положение камеры mode теперь ручное:
campos ("mode") ⇒ manualМы можем вернуть его к автоматическому:
campos ("auto") campos () ⇒ ans = -27.394 -35.701 64.079 close (hf)По умолчанию эти команды влияют на текущую ось; альтернативно, ось можно указать необязательным аргументом ax.
- camorbit (theta, phi)
- camorbit (theta, phi, coorsys)
- camorbit (theta, phi, coorsys, dir)
- camorbit (theta, phi, "data")
- camorbit (theta, phi, "data", "z")
- camorbit (theta, phi, "data", "x")
- camorbit (theta, phi, "data", "y")
- camorbit (theta, phi, "data", [x y z])
- camorbit (theta, phi, "camera")
- camorbit (hax, …)
-
Повернуть камеру вверх/вниз и влево/вправо вокруг её цели.
Переместить камеру на phi градусов вверх и на theta градусов вправо, как если бы она находилась на орбите вокруг своей цели. Пример:
sphere () camorbit (30, 20)
Эти вращения сосредоточены вокруг цели камеры (см. camtarget). Сначала положение камеры наклоняется вверх или вниз путём вращения её на phi градусов вокруг оси, ортогональной как направлению взгляда (конкретно
camtarget() - campos()) так и «вектору вверх» камеры (см. camup). Пример:camorbit (0, 20)
Второе вращение зависит от системы координат coorsys и ввода направления dir. Значение по умолчанию для coorsys —
"data". В этом случае камера наклоняется влево или вправо путём вращения её на theta градусов вокруг оси, заданной dir. Значение по умолчанию для dir —"z", соответствующее вектору[0, 0, 1]. Пример:camorbit (30, 0)
Когда coorsys установлено в
"camera", камера перемещается влево или вправо путём вращения её вокруг оси, параллельной вектору вверх камеры (см. camup). В этом случае ввод dir не должен быть указан. Пример:camorbit (30, 0, "camera")
(Примечание: вращение на phi не зависит от
"camera".)Команда
camorbitизменяет две свойства камеры: см. campos и см. camup.По умолчанию эта команда влияет на текущую ось; альтернативно, ось может быть задана необязательным аргументом hax.
- camroll (theta)
- camroll (ax, theta)
-
Наклонить камеру.
Наклонить камеру по часовой стрелке на theta градусов. Например, следующая команда наклонит камеру на 30 градусов по часовой стрелке (вправо); это заставит сцену, как будто бы, наклониться на 30 градусов влево:
peaks () camroll (30)
Наклонить камеру обратно:
camroll (-30)
Следующая команда восстановит значение наклона камеры по умолчанию:
camup ("auto")По умолчанию эти команды влияют на текущую ось; альтернативно, ось может быть задана необязательным аргументом ax.
- T = camtarget ()
- camtarget ([x y z])
- mode = camtarget ("mode")
- camtarget (mode)
- camtarget (ax, …)
-
Установить или получить, на что направлена камера.
Цель камеры — точка в пространстве, на которую направлена камера. Обычно она определяется автоматически на основе сцены:
hf = figure(); sphere (36) v = camtarget () ⇒ v = 0 0 0Мы можем направить камеру на новую цель:
camtarget ([1 1 1]) camtarget () ⇒ 1 1 1
Сделав это, цель камеры mode становится ручной:
camtarget ("mode") ⇒ manualЭто означает, что добавление новых объектов в сцену не перенаправит камеру:
hold on; peaks () camtarget () ⇒ 1 1 1
Мы можем сбросить её на автоматический режим:
camtarget ("auto") camtarget () ⇒ 0 0 0.76426 close (hf)По умолчанию эти команды влияют на текущую ось; альтернативно, ось может быть задана необязательным аргументом ax.
- up = camup ()
- camup ([x y z])
- mode = camup ("mode")
- camup (mode)
- camup (ax, …)
-
Установить или получить вектор направления «вверх» камеры.
По умолчанию камера ориентирована так, что «вверх» соответствует положительной оси z:
hf = figure (); sphere (36) v = camup () ⇒ v = 0 0 1Указание нового «вектора вверх» наклонит камеру и установит режим в ручной:
camup ([1 1 0]) camup () ⇒ 1 1 0 camup ("mode") ⇒ manualИзменение вектора вверх не изменяет цель камеры (см. camtarget). Таким образом, вектор «вверх» камеры может не быть ортогонален направлению взгляда камеры:
camup ([1 2 3]) dot (camup (), camtarget () - campos ()) ⇒ 6...
Следствие состоит в том, что «оттягивание» вектора «вверх» не наклоняет угол обзора камеры (так как это потребовало бы изменения цели). Таким образом, установка вектора вверх обычно используется только для наклона камеры. Более интуитивной командой для этой цели является см. camroll.
Наконец, мы можем сбросить вектор «вверх» на автоматический режим:
camup ("auto") camup () ⇒ 0 0 1 close (hf)По умолчанию эти команды влияют на текущую ось; альтернативно, ось может быть задана необязательным аргументом ax.
- a = camva ()
- camva (a)
- mode = camva ("mode")
- camva (mode)
- camva (ax, …)
-
Установить или получить угол обзора камеры.
У камеры есть угол обзора, который определяет, сколько можно увидеть. По умолчанию это:
hf = figure(); sphere (36) a = camva () ⇒ a = 10.340
Для получения более широкого угла обзора мы могли бы удвоить угол обзора. Это также установит режим в ручной:
camva (2*a) camva ("mode") ⇒ manualМы можем установить его обратно в автоматический режим:
camva ("auto") camva ("mode") ⇒ auto camva () ⇒ ans = 10.340 close (hf)По умолчанию эти команды влияют на текущую ось; альтернативно, ось может быть задана необязательным аргументом ax.
- camzoom (zf)
- camzoom (ax, zf)
-
Изменить масштаб камеры.
Значение zf больше 1 «приближает» сцену, так что она выглядит увеличенной:
hf = figure (); sphere (36) camzoom (1.2)
Значение меньше 1 «отдаляет», так что камера может увидеть больше сцены:
camzoom (0.5)
Технически говоря, масштабирование влияет на «угол обзора». Следующая команда сбрасывает масштаб до значения по умолчанию:
camva ("auto") close (hf)По умолчанию эти команды влияют на текущую ось; альтернативно, ось может быть задана необязательным аргументом ax.
- slice (x, y, z, v, sx, sy, sz)
- slice (x, y, z, v, xi, yi, zi)
- slice (v, sx, sy, sz)
- slice (v, xi, yi, zi)
- slice (…, method)
- slice (hax, …)
- h = slice (…)
-
Построение срезов 3D-данных/скалярных полей.
Каждый элемент трёхмерного массива v представляет скалярное значение в точке, заданной параметрами x, y и z. Параметры x, x и z — это либо трёхмерные массивы того же размера, что и массив v в формате
"meshgrid", либо векторы. Параметры xi и т. д. аналогичны x и т. д., и они представляют точки, в которых массив vi интерполируется с помощью interp3. Векторы sx, sy и sz содержат точки ортогональных срезов соответствующих осей.Если x, y, z опущены, они предполагаются равными
x = 1:size (v, 2),y = 1:size (v, 1)иz = 1:size (v, 3).method — это одно из:
"nearest"-
Возвращает ближайшего соседа.
"linear"-
Линейная интерполяция от ближайших соседей.
"cubic"-
Кубическая интерполяция из четырёх ближайших соседей (ещё не реализовано).
"spline"Кубическая интерполяция сплайнами — гладкие первая и вторая производные по всей кривой.
Метод по умолчанию —
"linear".Если первый аргумент hax является дескриптором осей, то график строится в этих осях, а не в текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h — дескриптор графического объекта созданной поверхности.
Примеры:
[x, y, z] = meshgrid (linspace (-8, 8, 32)); v = sin (sqrt (x.^2 + y.^2 + z.^2)) ./ (sqrt (x.^2 + y.^2 + z.^2)); slice (x, y, z, v, [], 0, []); [xi, yi] = meshgrid (linspace (-7, 7)); zi = xi + yi; slice (x, y, z, v, xi, yi, zi);
- ribbon (y)
- ribbon (x, y)
- ribbon (x, y, width)
- ribbon (hax, …)
- h = ribbon (…)
-
Построение ленточной диаграммы столбцов y против x.
Если x опущено, предполагается вектор с номерами строк (
1:rows (Y)). В качестве альтернативы x также может быть вектором с тем же количеством элементов, что и строк в y, в этом случае один и тот же x используется для каждого столбца y.Необязательный параметр width задаёт ширину одной ленты (значение по умолчанию — 0,75).
Если первый аргумент hax является дескриптором осей, то график строится в этих осях, а не в текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h — вектор графических дескрипторов объектов поверхности, представляющих каждую ленту.
- заливка (тип)
- заливка (hax, тип)
-
Устанавливает заливку графических объектов поверхностей или заплаток.
Допустимые значения для тип:
"flat"-
Заплатки одного цвета с невидимыми границами.
"faceted"-
Заплатки одного цвета с черными границами.
"interp"Цвета между вершинами заплатки интерполируются, а границы заплатки невидимы.
Если первый аргумент hax — дескриптор осей, то построение выполняется на этих осях, а не на текущих осях, возвращаемых
gca.См. также: fill, mesh, patch, pcolor, surf, surface, hidden, lighting.
- scatter3 (x, y, z)
- scatter3 (x, y, z, s)
- scatter3 (x, y, z, s, c)
- scatter3 (…, style)
- scatter3 (…, "filled")
- scatter3 (…, prop, val)
- scatter3 (hax, …)
- h = scatter3 (…)
-
Построение 3D диаграммы рассеяния.
В каждой точке, заданной координатами в векторах x, y и z, выводится маркер.
Размер маркеров определяется значением s, которое может быть скаляром или вектором той же длины, что и x, y и z. Если s не задан или является пустой матрицей, используется значение по умолчанию 8 точек.
Цвет маркеров определяется значением c, которое может быть строкой, определяющей фиксированный цвет; вектором из 3 элементов, задающим красный, зеленый и синий компоненты цвета; вектором той же длины, что и x, дающим отмасштабированный индекс в текущей цветовой карте; или матрицей Nx3, определяющей RGB цвет каждого маркера индивидуально.
Тип маркера можно изменить с помощью аргумента style, который представляет собой строку, определяющую маркер аналогично команде
plot. Если маркер не задан, по умолчанию используется"o"или кружки. Если задан аргумент"filled", то маркеры заполняются.Дополнительные пары свойство/значение передаются непосредственно подлежащему объекту patch.
Если первый аргумент hax — дескриптор осей, то построение выполняется на этих осях, а не на текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h — дескриптор графического объекта hggroup, представляющего точки.
[x, y, z] = peaks (20); scatter3 (x(:), y(:), z(:), [], z(:));
- waterfall (x, y, z)
- waterfall (z)
- waterfall (…, c)
- waterfall (…, prop, val, …)
- waterfall (hax, …)
- h = waterfall (…)
-
Построение 3D диаграммы «водопад».
Диаграмма «водопад» аналогична диаграмме
meshzс отображением только линий сетки для строк z (значения x).Каркас проволочной сетки строится с использованием прямоугольников. Вершины прямоугольников [x, y] обычно являются результатом
meshgrid. над 2D прямоугольной областью в плоскости x-y. z определяет высоту над плоскостью каждой вершины. Если задана только одна матрица z, она отображается над сеткойx = 1:columns (z), y = 1:rows (z). Таким образом, столбцы z соответствуют различным значениям x, а строки z — различным значениям y.Цвет сетки вычисляется путем линейного масштабирования значений z в соответствии с диапазоном текущей цветовой карты. Используйте
caxisи/или измените цветовой карту, чтобы контролировать внешний вид.Необязательно, цвет сетки может быть задан независимо от z путем ввода матрицы цвета c.
Любые пары свойство/значение передаются непосредственно подлежащему объекту surface.
Если первый аргумент hax — дескриптор осей, то построение выполняется на этих осях, а не на текущих осях, возвращаемых
gca.Необязательное возвращаемое значение h — дескриптор созданного объекта поверхности.
См. также: meshz, mesh, meshc, contour, surf, surface, ribbon, meshgrid, hidden, shading, colormap, caxis.
| • Соотношение сторон: |
| • Построение графиков функций в трёхмерном пространстве: |
| • Трёхмерные геометрические фигуры: |
© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v5.2.0/Three_002dDimensional-Plots.html