Потоковые трубы похожи на линии потоков, кроме труб имеют ширину, обеспечивая другую размерность, которую можно использовать, чтобы представлять информацию.
По умолчанию, графический дисплей MATLAB® расхождение векторного поля шириной трубы. Можно также задать ширины для каждой вершины трубы и таким образом сопоставить другие данные с шириной.
Этот пример использует следующие методы:
Потоковые трубы, чтобы указать на направление потока и расхождение векторного поля в wind
набор данных
Плоскости разбиения, окрашенные, чтобы указать на скорость токов ветра, наложенных с линией контура, чтобы улучшить видимость
Входные параметры включают координаты объема, векторных полевых компонентов и стартовых местоположений для потоковых труб.
Загрузите данные и вычислите, значения должны были сделать графики. Эти значения включают:
Местоположение плоскостей разбиения (максимальный x
, минимальный y
, и значение для высоты)
Минимальный x
значение для запуска потоковых труб
Скорость ветра (величина векторного поля)
load wind
xmin = min(x(:));
xmax = max(x(:));
ymin = min(y(:));
alt = 7.356; % z value for slice and streamtube plane
wind_speed = sqrt(u.^2 + v.^2 + w.^2);
Чертите плоскости разбиения (slice
) и набор surface
свойства создать гладко цветной срез. Используйте 16 цветов от hsv
colormap
.
hslice = slice(x,y,z,wind_speed,xmax,ymin,alt); set(hslice,'FaceColor','interp','EdgeColor','none') colormap hsv(16)
Добавьте линии контура (contourslice
) к плоскостям разбиения. Настройте интервал контура, таким образом, линии совпадают с цветными контурами в плоскостях разбиения:
Вызовите caxis
получить пределы текущего цвета.
Установите метод интерполяции, используемый contourslice
к linear
совпадать со значением по умолчанию, используемым slice
.
color_lim = caxis; cont_intervals = linspace(color_lim(1),color_lim(2),17); hcont = contourslice(x,y,z,wind_speed,xmax,ymin,... alt,cont_intervals,'linear'); set(hcont,'EdgeColor',[.4 .4 .4],'LineWidth',1)
Используйте meshgrid
создать массивы для начальных точек для потоковых труб, которые начинаются в минимальном x
значение, лежите в диапазоне от 20 до 50 в y
, и лгите в одной плоскости в z
(соответствие одной из плоскостей разбиения).
Потоковые трубы (streamtube
) чертятся в заданных местоположениях и масштабируются, чтобы быть 1.25 раза шириной по умолчанию, чтобы подчеркнуть изменение расхождения (ширина). Второй элемент в векторе [1.25 30] задает число точек вдоль окружности трубы (значение по умолчанию равняется 20). Вы можете хотеть увеличить это значение, когда размер трубы увеличивается, чтобы обеспечить сглаженно выглядящую трубу.
Установите соотношение сторон данных (daspect
) прежде, чем вызвать streamtube
.
Потоковые трубы являются объектами подложки, поэтому можно управлять их внешним видом путем установки поверхностных свойств. Этот пример устанавливает поверхностные свойства дать ярко освещенную, красную поверхность.
[sx,sy,sz] = meshgrid(xmin,20:3:50,alt);
daspect([1,1,1]) % set DAR before calling streamtube
htubes = streamtube(x,y,z,u,v,w,sx,sy,sz,[1.25 30]);
set(htubes,'EdgeColor','none','FaceColor','r',...
'AmbientStrength',.5)
Задайте представление и добавьте подсветку (view
, axis
volumebounds
, Projection
camlight
).
view(-100,30) axis(volumebounds(x,y,z,wind_speed)) set(gca,'Projection','perspective') camlight left