Main Content

coneplot

速度ベクトルを 3 次元ベクトル場の円錐としてプロット

  • Plot velocity vectors as cones in 3-D vector field

構文

coneplot(X,Y,Z,U,V,W,Cx,Cy,Cz)
coneplot(U,V,W,Cx,Cy,Cz)
coneplot(...,s)
coneplot(...,color)
coneplot(...,'quiver')
coneplot(...,'method')
coneplot(X,Y,Z,U,V,W,'nointerp')
coneplot(axes_handle,...)
h = coneplot(...)

説明

coneplot(X,Y,Z,U,V,W,Cx,Cy,Cz) は、速度ベクトルの方向を指し示し、その大きさに比例した長さの円錐としてプロットします。XYZ は、ベクトル場における座標を定義します。UVW は、ベクトル場を定義します。これらの配列はどれも、サイズが同じく、単調で、直交軸の範囲グリッド (meshgrid が作成するデータのように) を表さなければなりません。CxCyCz は、ベクトル場における円錐の位置を定義します。始点の定義については、可視化手法に関するストリーム プロットの開始位置の指定の節に詳細な説明があります。

coneplot(U,V,W,Cx,Cy,Cz) では、XY、および Z 引数が省略されており、[X,Y,Z] = meshgrid(1:n,1:m,1:p) であることを想定します。ここで、[m,n,p]= size(U) です。

coneplot(...,s) は、自動的にグラフに合わせて円錐をスケーリングしてから、スケール係数 s を適用して引き延ばします。s の値を指定しない場合、coneplot は値 1 を使用します。自動的なスケーリングを使用せずに円錐をプロットするには、s = 0 を使用します。

coneplot(...,color) はベクトル場上に配列 color を内挿し、内挿した値に従って円錐に着色します。color 配列のサイズは、UVW の各配列と同じでなければなりません。このオプションは円錐の場合にのみ機能します (すなわち、quiver オプションとは併用できません)。

coneplot(...,'quiver') は、円錐の代わりに矢印を描画します (quiver プロットの説明については、quiver3 を参照)。

coneplot(...,'method') は、使用する内挿法を指定します。method には、linearcubic、または nearest のいずれかを指定できます。linear が既定の設定です (これらの内挿法の詳細については、interp3 を参照)。

coneplot(X,Y,Z,U,V,W,'nointerp') は、円錐の位置を 3 次元に内挿しません。円錐は、XYZ が定義する位置に、UVW が示す方向で描画されます。配列 XYZUVW は、すべて同じサイズでなければなりません。

coneplot(axes_handle,...) は、現在の座標軸 (gca) の代わりにハンドル axes_handle をもつ座標軸にプロットします。

h = coneplot(...) は、円錐の描画に使用される patch オブジェクトのハンドルを返します。

coneplot は、グラフに合わせて円錐を自動的にスケーリングしますが、それぞれの速度ベクトルに応じた比率も維持します。

すべて折りたたむ

箱形の空間を通り抜ける空気の流れが表されているベクトル ボリューム データを、速度ベクトルの円錐でプロットします。

データを読み込みます。wind データセットには、ベクトルの成分を指定する配列 uvw と座標を指定する配列 xyz が含まれています。

load wind

スライス平面を配置し、円錐をプロットする場所を指定するデータの範囲を確定します。

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

円錐をプロットする場所を定義します。x および y の全範囲を選択し、z の 3 ~ 15 の範囲を選択します。

xrange = linspace(xmin,xmax,8);
yrange = linspace(ymin,ymax,8);
zrange = 3:4:15;
[cx,cy,cz] = meshgrid(xrange,yrange,zrange);

円錐を描画し、スケール係数を 5 に設定して既定のサイズより大きくします。

figure
hcone = coneplot(x,y,z,u,v,w,cx,cy,cz,5);

円錐の色を設定します。

hcone.FaceColor = 'red';
hcone.EdgeColor = 'none';

ベクトル場の大きさ (風速を表す) を計算して、slice コマンド用のスカラー データを作成します。

hold on
wind_speed = sqrt(u.^2 + v.^2 + w.^2);

x 軸上では xminxmaxy 軸上では ymaxz 軸上では zmin の位置にスライス平面を作成します。内挿を行う面のカラーリングを指定し、スライスのカラーリングで風速を表わし、エッジを描画しないようにします。

hsurfaces = slice(x,y,z,wind_speed,[xmin,xmax],ymax,zmin);
set(hsurfaces,'FaceColor','interp','EdgeColor','none')
hold off

座標軸の視点を変更し、データの縦横比を設定します。

view(30,40)
daspect([2,2,1])

光源をカメラの右側に追加し、Gouraud ライティングを使用して、円錐およびスライス平面を滑らかな 3 次元の外観にします。

camlight right
lighting gouraud
set(hsurfaces,'AmbientStrength',0.6)
hcone.DiffuseStrength = 0.8;

拡張機能

バージョン履歴

R2006a より前に導入