coneplot

Постройте график векторов скорости как конусов в 3-D векторном поле

Синтаксис

coneplot (X, Y, Z, U, V, W, Cx, Сай, Cz)
coneplot (U, V, W, Cx, Сай, Cz)
coneplot... S
coneplot..., цвет)
coneplot... quiver
coneplot..., 'метод')
coneplot (X, Y, Z, U, V, W, 'nointerp')
coneplot (axes_handle...)
h = coneplot (...)

Описание

coneplot(X,Y,Z,U,V,W,Cx,Cy,Cz) строит график векторов скорости как конусов, указывающих в направлении вектора скорости и имеющих длину, пропорциональную значению вектора скорости. X, Y, Z задает координаты для векторного поля. U, V, W задает векторное поле. Эти массивы должны быть одного размера, монотонные, и представлять Декартову, выровненную осью сетку (такую как данные, произведенные meshgrid). Cx, Cy, Cz задает местоположение конусов в векторном поле. Раздел Specifying Starting Points for Stream Plots in Visualization Techniques предоставляет больше информации об определении отправных точек.

coneplot(U,V,W,Cx,Cy,Cz) (не использующий X, Y и аргументы Z) принимает [X,Y,Z] = meshgrid(1:n,1:m,1:p), где [m,n,p]= size(U).

coneplot..., s) автоматически масштабирует конусы, чтобы соответствовать графику и затем расширяет их масштабным коэффициентом s. Если вы не указываете, что значение для s, coneplot использует значение 1. Используйте s = 0, чтобы построить график конусов без автоматического масштабирования.

coneplot..., цвет), интерполирует цвет массивов на векторное поле и затем окрашивает конусы согласно интерполированным значениям. Размер цветовой гаммы должен быть одного размера как U, V, W массивы. Эта опция работает только с конусами (то есть, не с опцией дрожи).

coneplot..., 'дрожь'), чертит стрелки вместо конусов (см. quiver3 для иллюстрации графика полей градиента).

coneplot..., 'метод'), задает метод интерполяции использовать. метод может быть линейным, кубическим, или самым близким. линейный значение по умолчанию. (См. interp3 для обсуждения этих методов интерполяции.)

coneplot(X,Y,Z,U,V,W,'nointerp') не интерполирует положения конусов в объем. Конусы чертятся в положениях, заданных X, Y, Z, и ориентированы согласно U, V, W. Массивы X, Y, Z, U, V, W должен все быть одного размера.

coneplot(axes_handle,...) строит график в оси с указателем axes_handle вместо в текущую систему координат (gca).

h = coneplot(...) возвращается, указатель на объект patch раньше чертил конусы.

coneplot автоматически масштабирует конусы, чтобы соответствовать графику при хранении их в пропорции к соответствующим векторам скорости.

Примеры

свернуть все

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

Загрузите данные. Набор данных wind содержит массивы u, v и w, которые задают векторные компоненты и массивы x, y и z, которые задают координаты.

load wind

Установите область значений данных, чтобы поместить плоскости разбиения и задать, где вы хотите конические графики.

xmin = min(x(:));
xmax = max(x(:));
ymin = min(y(:));
ymax = max(y(:));
zmin = min(z(:));

Задайте, где построить график конусов. Выберите полный спектр в x и y и выберите область значений 3 - 15 в z.

xrange = linspace(xmin,xmax,8);
yrange = linspace(ymin,ymax,8);
zrange = 3:4:15;
[cx,cy,cz] = meshgrid(xrange,yrange,zrange);

Постройте график конусов и установите масштабный коэффициент на 5 делать конусы больше, чем размер по умолчанию.

figure
hcone = coneplot(x,y,z,u,v,w,cx,cy,cz,5);

Выберите конические цвета.

hcone.FaceColor = 'red';
hcone.EdgeColor = 'none';

Вычислите значение векторного поля (который представляет скорость ветра) сгенерировать скалярные данные для команды slice.

hold on
wind_speed = sqrt(u.^2 + v.^2 + w.^2);

Создайте плоскости разбиения вдоль оси X в xmin и xmax вдоль оси Y в ymax, и вдоль оси z в zmin. Задайте интерполированный цвет поверхности, таким образом, срез, окрашивающий, указывает на скорость ветра, и не чертите края.

hsurfaces = slice(x,y,z,wind_speed,[xmin,xmax],ymax,zmin);
set(hsurfaces,'FaceColor','interp','EdgeColor','none')
hold off

Измените представление осей и установите соотношение сторон данных.

view(30,40)
daspect([2,2,1])

Добавьте источник света справа от камеры и используйте подсветку Гура, чтобы пригладить конусы и плоскости разбиения, трехмерный внешний вид.

camlight right
lighting gouraud
set(hsurfaces,'AmbientStrength',0.6)
hcone.DiffuseStrength = 0.8;

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

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

Была ли эта тема полезной?