可視化手法 | ![]() ![]() |
関数patchの挙動
関数 patch
には、高水準シンタックスと低水準シンタックスの2つの形式があります。関数 patch
の挙動は、使用するシンタックスによって若干異なります。
高水準シンタックス
高水準シンタックスを使用する場合、MATLABは指定したカラーデータに基づいて各面をカラーリングする方法を自動的に決定します。高水準シンタックスは、x 軸、y 軸、z 軸座標に対するプロパティ名やカラーデータを、正式な順番で指定する限り、省略できます。
patch(x-coordinates,y-coordinates,z-coordinates,colordata)
しかし、MATLABがどのタイプのカラーリングを使用するかを決定できるように、カラーデータを指定する必要はあります。カラーデータを指定しないと、MATLABはつぎのエラーを出力します。
patch(sin(t),cos(t)) ??? Error using ==> patch Not enough input arguments.
低水準シンタックス
低水準シンタックスは、引数としてプロパティの名前/値の組み合わせでのみ設定でき、たとえば、FaceColor
プロパティの値を変更しない限り、面を自動的にカラーリングしません。たとえば、ステートメント
patch('XData',sin(t),'YData',cos(t)) % 低水準シンタックス
は、FaceColor
プロパティに対する工場出荷時のデフォルトが白色なので、白色の面の色を使ってパッチを描きます。
get(0,'FactoryPatchFaceColor') ans = 1 1 1
プロパティの工場出荷時のデフォルトやユーザデフォルト値の取得方法に関しては、patch プロパティ のリストや get
コマンドを参照してください。
カラー引数の解釈
正式でないシンタックスを使用する場合、MATLABは3番目(z 座標がある場合は4番目)の引数をカラーデータと解釈します。x, y, z 座標でpatchを定義し、カラーを省いた場合、MATLABはz 座標をカラーデータとして解釈し、2次元のpatchを描画します。たとえば、
h = patch(sin(t),cos(t),1:length(t))
は、(頂点毎に1つのカラーをもつので)頂点のカラーから補間することによってカラーリングした、すべての頂点がz = 0であるpatchを描画しますが、一方、
h = patch(sin(t),cos(t),1:length(t),'y')
は、z の増加する値で頂点をもつ黄色にカラーリングしたpatchを描画します。
patchのカラーリングのオプションに関する情報は、"patchのカラーリングの指定" を参照してください。
![]() | patchを使った3次元モデルの作成 | 単一多角形の作成 | ![]() |