可視化手法 | ![]() ![]() |
ストリーム粒子のアニメーションは、流れの方向とベクトル場の速度を可視化するために役立ちます。"粒子"(ラインマーカによって表わされます)は、特定のストリームラインに沿った流れを追跡します。アニメーションの各粒子の速度は、ストリームラインに沿った任意の点でのベクトル場の大きさに比例します。
1. データ範囲にプロットの開始位置を指定
つぎの例は、適切な 開始位置を指定することによって、プロットする物体の領域を決定します。この場合、ストリームプロットは x = 100で開始され、yの範囲は20から50で、z = 5 の平面にあります。これは、完全な物体の範囲でないことに注意してください。
load wind [sx sy sz] = meshgrid(100,20:2:50,5);
2.
ストリームラインを作成して粒子のパスを表示
つぎの例は、ストリームライン(stream3
, streamline
)を使って、アニメーション化された粒子のパスを追跡します。これは、アニメーションに対する視覚的な内容を付加します。その他に可能なことは、ストリーム粒子の
EraseMode
プロパティをnoneに設定することで、これは、物体を通過する単一のパスの追跡に役立ちます。
verts = stream3(x,y,z,u,v,w,sx,sy,sz); sl = streamline(verts);
3. ビューの定義
すべてのストリームラインは、z = 5 平面で開始されますが、らせんの値の中には、それよりも低い値のものがあります。つぎの設定は、よりはっきりとしたアニメーションのビューを提供します。
view
)
は、ほとんどのストリームラインとらせんを含む平面を表示します。
daspect
)を [2
2 0.125]
と選択すると、z方向の解像度が大きくなり、ストリーム粒子がらせん内でより見易くなります。axis
)、axis boxを描画します(box
)。view(-10.5,18) daspect([2 2 0.125]) axis tight; box on
4. ストリーム粒子の頂点を計算
最初のステップは、粒子が描画されるストリームラインに沿った頂点を決めることです。関数
interpstreamspeed
は、ストリームラインの頂点に基づくデータとベクトルデータの速度を出力します。この例は、速度0.05をスケーリングして、内挿される頂点の数を増やします。
axesの DrawMode
プロパティを fast
に設定すると、アニメーションをより高速に実行することができます。
関数streamparticlesは、つぎのプロパティを設定します。
Animate
を10に設定して、アニメーションを10回実行ParticleAlignment
を on
に設定してすべての粒子の追跡を開始MarkerEdgeColor
をnoneに設定して円形のマーカの面のみを描画します。アニメーションは、通常マーカのエッジが描画されないときに高速に実行されます。Marker
を o
に設定します。これは、円形のマーカを描画します。その他の選択肢は、lineの
markers を参照してください。iverts = interpstreamspeed(x,y,z,u,v,w,verts,0.05); set(gca,'drawmode','fast'); streamparticles(iverts,15,... 'Animate',10,... 'ParticleAlignment','on',... 'MarkerEdgeColor','none',... 'MarkerFaceColor','red',... 'Marker','o');
![]() |
ストリームチューブの発散の表示 | コーンプロットを使って表示されたベクトル場 | ![]() |