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

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

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

パッチのカラーリングの指定

パッチのカラー プロパティ

パッチ カラーリングを定義する方法は、Surface オブジェクトのカラーリングとは異なって定義されます。パッチは各頂点の z 軸の値に基づいて自動的にカラー データを生成しません。既定の色 (白い面の色と黒のエッジ) でパッチをカラーリングしない場合は、カラーリングを明示的に指定しなければなりません。

以下を定義してパッチの面の色を指定できます。

  • すべての面に対して単色

  • 各面に対して単色。同一のカラーリングに使用されます。

  • 各頂点に対して単色。内挿されたカラーリングに使用されます。

xyz 座標を使用する場合には CData プロパティを使い、頂点と面を指定する場合には FaceVertexCData プロパティを使用して面の色を指定してください。

次の表は色をコントロールするパッチのプロパティをまとめたものです (光源が存在するときに使用されるプロパティを除きます)。

プロパティ目的
CData

x、y、z データを組み合わせて面ごとあるいは頂点ごとに単一の色を指定します。

CDataMapping

カラー データのスケーリングを行うか、Figure のカラーマップのインデックスとして直接使用するかを指定します。

FaceVertexCData

面と頂点データを組み合わせて面ごとあるいは頂点ごとに単一の色を指定します。

EdgeColor

エッジが透明、単色、頂点色で決まる単一の色、または頂点の色で決まる内挿された色のどれであるかを指定します。

FaceColor

面は透明、単色、頂点色で決まる単一の色、または頂点の色で決まる内挿された色のどれであるかを指定します。

MarkerEdgeColor

マーカーの色または塗りつぶしたマーカーに対してエッジの色を指定します。

MarkerFaceColor

閉じた形状のマーカーを塗りつぶす色を指定します。

パッチのエッジ カラーリング

パッチの各面は以下のように色付けられる境界のエッジをもちます。

  • すべてのエッジに対して単色

  • エッジに接続された頂点の色で定義される同一の色

  • エッジの境界を決める 2 つの頂点で決められる内挿された色

パッチのエッジの色は、各頂点の色を指定する場合に限り、頂点と同じ単色か、内挿された色にすることができます。エッジが同一の色であるカラーリングに対して、エッジに接続する頂点の色を使用してエッジの色を決めます。頂点を指定する順序により、どの頂点が特定のエッジにカラーリングするかが決まります。

次の例は、パッチのエッジ カラーリングを説明します。

例 - エッジと面に同じ色を指定する

次のステートメントでは、四角形のパッチが作成されます。

v  = [0 0 0;1 0 0;1 1 0;0 1 0];
f = [1 2 3 4];
fvc = [1 0 0;0 1 0;1 0 1;1 1 0];
patch('Vertices',v,'Faces',f,'FaceVertexCData',fvc,...
      'FaceColor','flat','EdgeColor','flat',...
      'Marker','o','MarkerFaceColor','flat')

Faces プロパティ値 [1 2 3 4] は、MATLAB® が頂点を結合する順序を決めます。この場合の順序は、赤、緑、マゼンタ、黄色です。この順序を変更すると、結果はまったく異なります。たとえば、Faces プロパティを次のように設定します。

f = [4 3 2 1];

順序は、黄色、マゼンタ、緑、赤に変わります。順序を変更すると各エッジの色だけでなく、面の色が最初に指定した頂点の色に変わります。

共有する頂点をもつエッジのカラーリング

パッチの各面は、頂点を結合するライン セグメントであるエッジによって境界が決められます。パッチに頂点を共有する複数の面がある場合、エッジのいくつかが重なる場合があります。そのような場合には、最後に描画した面のエッジがその前に描画したエッジを上書きします。

たとえば、次の図は 4 つの面とフラットにカラーリングされたエッジをもつパッチを示したものです (FaceColornone に、EdgeColorflat に設定します)。

矢印は 1 番目、2 番目、3 番目、4 番目の面で、各エッジを描画する順序を示します。各頂点の色は、それに続くエッジの色を決めます。2 番目の面がその 4 番目のエッジをマゼンタ色の頂点から描画したため、1 番目の面の 2 番目のエッジが緑にならないということに注意してください。同様の効果はすべての共有のエッジに見られます。

EdgeColorinterp に設定すると、MATLAB は隣接する頂点間の色を内挿します。この場合、頂点を指定する順序はエッジの色に影響しません。

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