可視化手法 | ![]() ![]() |
ストリームリボンは、ストリームラインと同様に流れの方向を表わしますが、リボン型の流れのラインをねじることによって、流れの軸に関する回転を表示することもできます。関数
streamribbon
を使って、ストリームリボンの各頂点に対するねじり角度(ラジアン)
を指定することができます。
関数 curl
と共に利用する際、streamribbon
はベクトル場のcurl角速度の表示に役立ちます。つぎの例題は、この手法を説明しています。
1. プロットするデータのサブセットの選択
subvolume
を使って、windデータセットの興味ある領域をロードし選択します。最初に完全なデータセットをプロットすると興味のある領域を選択するのに役立ちます。
load wind lims = [100.64 116.67 17.25 28.75 -0.02 6.86]; [x,y,z,u,v,w] = subvolume(x,y,z,u,v,w,lims);
2. Curl角速度と風速の計算
curl
角速度と風速を計算します。
cav = curl(x,y,z,u,v,w); wind_speed = sqrt(u.^2 + v.^2 + w.^2);
3. ストリームリボンの作成
meshgrid
を使ってストリームリボンの開始位置の配列を作成します。開始位置の配列の指定に関する情報は、ストリームプロットの開始位置の指定
を参照してください。 stream3
は、ステップサイズが .5
のストリームラインの頂点を計算します。streamribbon
は、ファクタ 2
によってリボンの幅をスケーリングし、ねじれの視覚状態を強調します(これはcurl角速度を表わします)。streamribbon
は、作成するsurfaceオブジェクトのハンドルを出力します。これは、その後カラーを赤に設定(FaceColor
)、surfaceのエッジカラーをライトグレイに設定し(EdgeColor
)、ライティングが適用されたときに反射される周囲光の明るさをわずかに増加させるために利用します(AmbientStrength
)。[sx sy sz] = meshgrid(110,20:5:30,1:5); verts = stream3(x,y,z,u,v,w,sx,sy,sz,.5); h = streamribbon(verts,x,y,z,cav,wind_speed,2); set(h,'FaceColor','r',... 'EdgeColor',[.7 .7 .7],... 'AmbientStrength',.6)
4. ビューの指定と光源の付加
volumebounds
コマンドは、axis
とカラーの範囲を設定するための便利な方法を提供します。 view
に grid
を付加します(streamribbon
はカレントのビューを変更しません)。camlight
は、視点の右側に配置されたライトを作成し、lighting
はライティング法をPhongに設定します(これはzbufferレンダラが必要です)。axis(volumebounds(x,y,z,wind_speed)) grid on view(3) camlight right; set(gcf,'Renderer','zbuffer'); lighting phong
![]() |
ベクトルデータのストリームラインプロット | ストリームチューブを使った発散の表示 | ![]() |