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 задайте местоположение конусов в векторном поле. Раздел «Определение начальных точек для потоковых графиков в методах визуализации» предоставляет дополнительную информацию об определении начальных точек.

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 автоматически масштабирует конусы, чтобы соответствовать графику, сохраняя их пропорционально соответствующим векторам скорости.

Примеры

свернуть все

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

Загрузите данные. The 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