Потоковые трубы подобны линиям потоков, кроме труб имеют ширину, обеспечивая другую размерность, которую можно использовать, чтобы представлять информацию.
По умолчанию, графический дисплей 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 цветов от
colormap
hsv
.
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