ドキュメンテーション センター

  • 評価版
  • 製品アップデート

目次

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

コーン プロットを使用したベクトル場の表示

表示できるコーン プロット

次の例は、wind データに対する速度ベクトルのコーン プロットを行います。生成されたグラフは、以下の可視化手法を使用します。

  • 等値面はコーン プロットに対する可視状態の内容を提供し、コーンの設定に対して特定のデータ値を選択するための方法を提供するために使用されます。

  • ライティングを使用して、等値面の形状を明確に可視にすることができます。

  • 遠近投影、カメラの位置設定、表示の角度調整により、最終的な表示を構成します。

1. 等値面の作成

データの矩形範囲内で等値面を表示することにより、コーン プロットの視覚状態の内容を与えます。等値面の作成には次の手順が必要です。

  1. ベクトル場の大きさを計算します。これは風速を表します。

  2. isosurface および patch を使用して、直方体内で風速が特定の値と等しい点を表示する等値面を描画します。等値面の範囲は、より高速で等値面の範囲外は低速です。

  3. isonormals を使用することにより、等値面の描画に用いられる三角形から法線を計算するのではなく、ボリューム データから等値面の頂点の法線を計算します。これらの法線は、通常より正確な結果を生成します。

  4. 等値面の視覚プロパティを設定して、赤色でエッジを描画しないようにします (FaceColorEdgeColor)。

    load wind
    wind_speed = sqrt(u.^2 + v.^2 + w.^2);
    hiso = patch(isosurface(x,y,z,wind_speed,40));
    isonormals(x,y,z,wind_speed,hiso)
    set(hiso,'FaceColor','red','EdgeColor','none');

2. 等値断面の追加

等値断面はボリューム データの断面を表示するスライス平面と似ています。それらは、等値面のエンドキャップになるように設計されています。等値断面に対して内挿されたフェースカラーを使用することにより、現在のカラーマップの色にデータ値がマッピングされます。等値面に対して等値断面を作成するには、同じ等値で定義します (isocapspatchcolormap)。

hcap = patch(isocaps(x,y,z,wind_speed,40),...
    'FaceColor','interp',...
    'EdgeColor','none');
colormap hsv

3. 1 つ目のコーン セットの作成

  • コーンの正しいサイズを決められるように、関数 coneplot を呼び出す前に、関数 daspect を使用して、軸のデータの縦横比を設定します。

  • より小さい等値をもつ、もう一つの等値面を計算することによって、コーンを設置する点を決定し(そのため、コーンは 1 番目の等値面の外側を表示します)、reducepatch を使用して面と頂点の数を減らします (これで、グラフ上にコーンが多すぎないようにします)。

  • コーンを描き、面の色を blue に、エッジの色を none に設定します。

    daspect([1,1,1]);
    [f verts] = reducepatch(isosurface(x,y,z,wind_speed,30),0.07);
    h1 = coneplot(x,y,z,u,v,w,verts(:,1),verts(:,2),verts(:,3),3);
    set(h1,'FaceColor','blue','EdgeColor','none');

4. 2 つ目のコーン セットの作成

  1. データ範囲に広がる値に 2 番目の点の集合を作成します (linspacemeshgrid)。

  2. コーンの 2 番目のセットを描画し、フェース カラーを緑に、エッジカラーを none に設定します。

    xrange = linspace(min(x(:)),max(x(:)),10);
    yrange = linspace(min(y(:)),max(y(:)),10);
    zrange = 3:4:15;
    [cx,cy,cz] = meshgrid(xrange,yrange,zrange);
    h2 = coneplot(x,y,z,u,v,w,cx,cy,cz,2);
    set(h2,'FaceColor','green','EdgeColor','none');

5. ビューの定義

  1. axis コマンドを使用して、軸の範囲をデータの最小値 / 最大値と等しく設定し、グラフをボックスで囲んでボリューム データを改良します (box)。

  2. 投影タイプを遠近投影に設定し、より自然なボリューム データの表示を作成します。視点を設定し、ズームインして表示を拡大します (camprojcamzoomview)。

    axis tight
    box on
    camproj perspective
    camzoom(1.25)
    view(65,45)

6. 光源を追加する

光源を付加し、等値面の滑らかなライティングに対して Phong ライティングを使用します (Phong ライティングは Z-buffer レンダラーが必要です)。isocaps に対する背景光の強さを増加させて、より明るくします (camlightlightingAmbientStrength)。

camlight(-45,45)
set(gcf,'Renderer','zbuffer'); 
lighting phong
set(hcap,'AmbientStrength',.6)

この情報は役に立ちましたか?