streamribbon

3-D потоковый график ленты от векторных данных объема

Синтаксис

streamribbon (X, Y, Z, U, V, W, startx, starty, startz)
streamribbon (U, V, W, startx, starty, startz)
streamribbon (вершины, X, Y, Z, cav, скорость)
streamribbon (вершины, cav, скорость)
streamribbon (вершины, twistangle)
streamribbon... width
streamribbon (axes_handle...)
h = streamribbon (...)

Описание

streamribbon(X,Y,Z,U,V,W,startx,starty,startz) чертит потоковые ленты от векторных данных объема U, V, W.

Массивы X, Y, и Z, которые задают координаты для U, V и W, должен быть монотонным, но не должным быть однородно располагаться с интервалами. X, Y и Z должны иметь то же число элементов, как будто произведенный meshgrid.

startx, starty и startz задают стартовые позиции потоковых лент в центре лент.

Скручивание лент пропорционально завихрению векторного поля. Ширина лент вычисляется автоматически.

streamribbon(U,V,W,startx,starty,startz) принимает X, Y, и Z определяется выражением

[X,Y,Z] = meshgrid(1:n,1:m,1:p)

где [m,n,p] = size(U).

streamribbon(vertices,X,Y,Z,cav,speed) принимает предварительно вычисленные оптимальные вершины, завихритесь угловая скорость и скорость потока. vertices является массивом ячеек оптимальных вершин (как произведено stream3). X, Y, Z, cav и speed являются трехмерными массивами.

streamribbon(vertices,cav,speed) принимает X, Y, и Z определяется выражением

[X,Y,Z] = meshgrid(1:n,1:m,1:p)

где [m,n,p] = size(cav).

streamribbon(vertices,twistangle) использует массив ячеек векторов twistangle для скручивания лент (в радианах). Размер каждого соответствующего элемента vertices и twistangle должен быть равным.

streamribbon..., ширина), устанавливает ширину лент к ширине.

Графики streamribbon(axes_handle,...) в объект осей с указателем axes_handle вместо в текущую систему координат возражают (gca).

h = streamribbon(...) возвращает вектор указателей (один на стартовую точку) к объектам surface.

Примеры

свернуть все

Используйте потоковые ленты, чтобы указать на поток в наборе данных.

load wind
[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15);
streamribbon(x,y,z,u,v,w,sx,sy,sz);
axis tight
shading interp
view(3);
camlight
lighting gouraud

Используйте предварительно вычисленные данные вершины, вихревую среднюю скорость и скорость, чтобы указать на поток.

load wind
[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15);
verts = stream3(x,y,z,u,v,w,sx,sy,sz);
cav = curl(x,y,z,u,v,w);
spd = sqrt(u.^2 + v.^2 + w.^2).*.1;
streamribbon(verts,x,y,z,cav,spd);
axis tight
shading interp
view(3);
camlight; 
lighting gouraud

Используя предрасчетные данные позволяет вам использовать значения кроме вычисленных от единственного источника данных. В этом случае скорость уменьшается фактором 10 по сравнению с предыдущим примером.

Задайте угол скручивания для потоковой ленты

t = 0:.15:15;
verts = {[cos(t)' sin(t)' (t/3)']};
twistangle = {cos(t)'};
streamribbon(verts,twistangle);
axis tight
shading interp
view(3)
camlight 
lighting gouraud

Создайте трехмерные массивы и конический график.

xmin = -7; xmax = 7;
ymin = -7; ymax = 7; 
zmin = -7; zmax = 7; 
x = linspace(xmin,xmax,30);
y = linspace(ymin,ymax,20);
z = linspace(zmin,zmax,20);
[x,y,z] = meshgrid(x,y,z);
u = y; 
v = -x; 
w = 0*x+1;
[cx,cy,cz] = meshgrid(linspace(xmin,xmax,30),...
   linspace(ymin,ymax,30),[-3 4]);
h = coneplot(x,y,z,u,v,w,cx,cy,cz,'quiver');
set(h,'Color','k');

Постройте график двух наборов потоковых лент. Затем задайте представление и подсветку.

[sx,sy,sz] = meshgrid([-1 0 1],[-1 0 1],-6);
streamribbon(x,y,z,u,v,w,sx,sy,sz);
[sx,sy,sz] = meshgrid([1:6],[0],-6);
streamribbon(x,y,z,u,v,w,sx,sy,sz);
shading interp
view(-30,10) 
axis off tight
camproj perspective
camva(66)
camlookat 
camdolly(0,0,.5,'fixtarget')
camlight

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

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

Была ли эта тема полезной?