| MATLAB Function Reference | ![]() |
表示
streamslice(X,Y,Z,U,V,W,startx,starty,startz) streamslice(U,V,W,startx,starty,startz) streamslice(X,Y,U,V) streamslice(U,V) streamslice(...,density) streamslice(...,'arrowmode') streamslice(...,'method') h = streamslice(...) [vertices arrowvertices] = streamslice(...)
詳細
streamslice(X,Y,Z,U,V,W,startx,starty,startz)
は、ベクトル startx, starty, startz で表される点で、x-, y-, z-平面の軸の中で、ベクトルデータ U, V, W から、うまく分布したストリームライン(方向を示す矢印を含む)を描画します( 可視化手法の中の 節 Starting Points for Stream Plots で、始点の定義に関する詳細な情報を与えます)。配列 X, Y, Z は、 U, V, W に対する座標で、(meshgrid で作成したような)単調な、3次元平面です。U, V, W は、m * n * p の3次元配列です。
流れは、スライス平面に z 要素、W は、その平面でのストリームラインを計算する場合に無視されます。
ストリームスライスは、ストリームライン、ストリームチューブ、ストリームリボンをスタートさせるのに有効なものです。
streamslice(U,V,W,startx,starty,startz)
は、つぎの式で決定される X, Y, Z を仮定しています。
[X,Y,Z] = meshgrid(1:n,1:m,1:p)
streamslice(X,Y,U,V)
は、ベクトルの物体データ U, V から、うまく分布したストリームライン(方向を示す矢印をもつ)を描画します。配列 X, Y は、U, V に対する座標を定義するもので、(meshgrid で作成されたような)単調で、2次元平面でなければなりません。
streamslice(U,V)
は、ぎの式で決定される X, Y, Z を仮定しています。
[X,Y,Z] = meshgrid(1:n,1:m,1:p)
streamslice(...,density)
は、ストリームラインの自動的に決定される間隔を変更します。density は、0 より大きくなければなりません。デフォルト値は、1です。大きな値は、各平面により多くのストリームラインを作成します。たとえば、2 は、約2倍のストリームラインを作成し、0.5 は約半分のストリームラインになります。
streamslice(...,' は、方向を示す矢印を表示するか、否かを決定します。arrowsmode')
arrowmode は、つぎのいずれかを設定できます。
arrows - ストリームライン上に方向を示す矢印を表示します(デフォルト)。noarrows - ストリームライン上に方向を示す矢印を表示しません。streamslice(..., は、使用する内挿法を指定します。'method')
method には、つぎのいずれかを設定できます。
linear - 線形内挿 (デフォルト)cubic - キュービック内挿nearest - 最近傍内挿内挿法の詳細は、interp3 を参照してください。
h = streamslice(...)
は、作成したラインオブジェクトのハンドル番号から構成されるベクトルを戻します。
[vertices arrowvertices] = streamslice(...)
は、ストリームラインと矢印を描画するための頂点のセル配列を2つ戻します。これらの値をストリームライン描画関数(streamline, streamribbon, streamtube)のいずれかに渡すことができます。
例題
つぎの例題は、wind データセットの中で、z = 5 に関して、ストリームスライスを作成します。
load wind daspect([1 1 1]) streamslice(x,y,z,u,v,w,[],[],[5]) axis tight
つぎの例題は、streamslice を使って、ストリームラインと方向を示す矢印から頂点データを計算します。このデータは、streamline で使われ、ラインと矢印をプロットします。風速(
)を色付けしたスライス平面を、同じ平面内にスライスにより示します。
load wind daspect([1 1 1]) [verts averts] = streamslice(u,v,w,10,10,10); streamline([verts averts]) spd = sqrt(u.^2 + v.^2 + w.^2); hold on; slice(spd,10,10,10); colormap(hot) shading interp view(30,50); axis(volumebounds(spd)); camlight; material([.5 1 0])
つぎの例題は、サーフェス上にコンタを重ね書きし、streamslice を使って、サーフェスの降倍を示すラインを書きます。サーフェス上に位置するラインに関する点を見つけるために、interp2 を使います。
z = peaks;
surf(z)
shading interp
hold on
[c ch] = contour3(z,20); set(ch,'edgecolor','b')
[u v] = gradient(z);
h = streamslice(-u,-v);
set(h,'color','k')
for i=1:length(h);
zi = interp2(z,get(h(i),'xdata'),get(h(i),'ydata'));
set(h(i),'zdata',zi);
end
view(30,50); axis tight
参考
contourslice, slice, streamline, volumebounds
| streamribbon | streamtube | ![]() |