Main Content

ベクトル データを使用した流線の表示

風のマッピング データ

MATLAB® ベクトル データセット wind は北米上空の大気の流れを表します。この例は、複数の手法を組み合わせて使用します。

  • 風速を追跡するために流線を使用します。

  • データの断面を表示するためスライス平面を使用します。

  • スライス平面のカラーリングの可視化を改善するためスライス平面に等高線を使用します。

1. 座標の範囲の決定

データを読み込み、スライス平面と等高線図を配置するための最小値と最大値を決めます (loadminmax)。

load wind
xmin = min(x(:));
xmax = max(x(:));
ymax = max(y(:));
zmin = min(z(:));

2. 内部を表示するスライス平面の追加

ベクトル場の大きさ (これが風速を表します) を計算して、slice コマンド用のスカラー データを作成します。"x" 軸上では xmin100xmax"y" 軸上では ymax"z" 軸上では zmin の位置にスライス平面を作成します。内挿を行う面のカラーリングを指定し、スライスのカラーリングが風速を表し、エッジを描画しないようにします (sqrtsliceFaceColorEdgeColor)。

wind_speed = sqrt(u.^2 + v.^2 + w.^2);
hsurfaces = slice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);
set(hsurfaces,'FaceColor','interp','EdgeColor','none')
colormap turbo

3. スライス平面への等高線の追加

スライス平面にライトグレーの等高線を描画してカラー マッピングの量をわかりやすくします (contoursliceEdgeColorLineWidth)。

hcont = ...
contourslice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);
set(hcont,'EdgeColor',[0.7 0.7 0.7],'LineWidth',0.5)

4. 流線の始点の定義

この例では、すべての流線が、x 軸の値 80 から始まり、y 方向に 20 ~ 50、z 方向に 0 ~ 15 の範囲で広がります。流線のハンドルを保存し、ラインの幅と色を設定します (meshgridstreamlineLineWidthColor)。

[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15);
hlines = streamline(x,y,z,u,v,w,sx,sy,sz);
set(hlines,'LineWidth',2,'Color','r')

5. 表示の定義

表示を指定し、グラフを読み易くするために z 軸を引き伸ばします (viewdaspectaxis)。

view(3)
daspect([2,2,1])
axis tight

同じデータで円錐を使用してプロットした例は、coneplot を参照してください。