exponenta event banner

coneplot

Скоростные векторы сюжета как конусы в 3D векторной области

Синтаксис

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

Примеры

свернуть все

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

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