MATLAB Function Reference | ![]() ![]() |
表示
streamribbon(X,Y,Z,U,V,W,startx,starty,startz) streamribbon(U,V,W,startx,starty,startz) streamribbon(vertices,X,Y,Z,cav,speed) streamribbon(vertices,cav,speed) streamribbon(vertices,twistangle) streamribbon(...,width) h = streamribbon(...)
詳細
streamribbon(X,Y,Z,U,V,W,startx,starty,startz)
は、ベクトル物体データ U
, V
, W
からストリームリボンを描画します。配列 X
, Y
, Z
は、U
, V
, W
に対する座標で、(あたかも、meshgrid
で作成した)単調で、3次元平面を定義します。startx
, starty
, startz
は、リボンの中心で、ストリームリボンの始点を定義します。始点の定義に関する詳細を記述している可視化手法のストリームプロットに対する始点 の節を参照してください。
リボンの捩れは、ベクトル場の curl に比例します。リボンの幅は、自動的に計算されます。
一般に、streamribbon
をコールする前に、DataAspectRatio
(daspect
) を設定する必要があります。
streamribbon(U,V,W,startx,starty,startz)
は、つぎの式で決定される
X
, Y
, Z
を仮定しています。
[X,Y,Z] = meshgrid(1:n,1:m,1:p)
streamribbon(vertices,X,Y,Z,cav,speed)
は、前もって計算したストリーム頂点、curl角速度、フロースピードを仮定しています。
vertices
は、(stream3
で作成された)ストリームライン頂点のセル配列です。X
, Y
, Z
, cav
, speed
は、3次元配列です。
streamribbon(vertices,cav,speed)
は、つぎの式で決定される
X
, Y
, Z
を仮定しています。
[X,Y,Z] = meshgrid(1:n,1:m,1:p)
streamribbon(vertices,twistangle)
は、リボンの捩れに、ベクトルのセル配列 twistangle
を使います。vertices
と twistangle
の個々の対応する要素のサイズは、等しくなければなりません。
streamribbon(...,width)
は、リボンの幅を width
に設定します。
h = streamribbon(...)
は、surface
オブジェクトのハンドル(始点毎に一つ)のベクトルを戻します。
例題
つぎの例題は、ストリームリボンを使って、風のデータから風向を示します。入力は、座標、ベクトル場の成分、ストリームリボンに対する始点の位置です。
load wind [sx sy sz] = meshgrid(80,20:10:50,0:5:15); daspect([1 1 1]) streamribbon(x,y,z,u,v,w,sx,sy,sz); %-----Define viewing and lighting axis tight shading interp; view(3); camlight; lighting gouraud
つぎの例題は、前もって計算した頂点データ(stream3
)、curl 平均速度(curl
)、スピード() を使います。前もって計算されたデータを使って、単一データ源から計算されたものとは別に、この値を使えます。この場合、スピードは、前の例題の約10倍速くなります。
load wind [sx sy sz] = meshgrid(80,20:10:50,0:5:15); daspect([1 1 1]) 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); %-----Define viewing and lighting axis tight shading interp view(3) camlight; lighting gouraud
t = 0:.15:15; verts = {[cos(t)' sin(t)' (t/3)']}; twistangle = {cos(t)'}; daspect([1 1 1]) streamribbon(verts,twistangle); %-----ビューとライトの定義 axis tight shading interp; view(3); camlight; lighting gouraud
つぎの例題は、コーンプロット(coneplot
) とストリームリボンプロットを組み合わせて、一つのグラフに表示します。
%-----3-次元配列 x, y, z, u, v, w を定義 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; %-----y と z を使って、コーンの位置を再設定 %-----コーンの代わりに、黒矢印(quiver)をプロット %-----2 x-y 平面 (z = -3 と z = 4) に、コーンを描画 y = linspace(ymin,ymax,30); z = [-3 4]; [cx cy cz] = meshgrid(x,y,z); daspect([1 1 1]); h = coneplot(x,y,z,u,v,w,cx,cy,cz,'quiver'); set(h,'color','k'); %-----2組のストリームリボンのプロット [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
参考
curl
, streamtube
, streamline
, stream3
![]() | streamparticles | streamslice | ![]() |