coneplot

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

Синтаксис

coneplot(X,Y,Z,U,V,W,Cx,Cy,Cz)
coneplot(U,V,W,Cx,Cy,Cz)
coneplot(...,s)
coneplot(...,color)
coneplot(...,'quiver')
coneplot(...,'method')
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(...,color) интерполирует массив color на векторное поле и затем окрашивает конусы согласно интерполированным значениям. Размер массива color должен быть одного размера как U, V, массивы W. Эта опция работает только с конусами (то есть, не с опцией quiver).

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

coneplot(...,'method') задает метод интерполяции использовать. method может быть linear, cubic или nearest. linear является значением по умолчанию. (См. 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])

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

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

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

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