描画スタイル with mask は、マスキング領域を定義するのに使います。こ
れは、同じ plot, splot コマンド上で後で指定した pm3d 曲面や画像に
適用できます。入力データは、1 つ、または複数の多角形の頂点を定義する
[x,y] 座標列、または [x,y,z] 座標列として解釈します。描画スタイル
with polygons と同様に、多角形は空行で分離します。マスクが 3 次元描
画コマンド (splot) の一部である場合、入力には z の値が必要ですが、しか
しそれは現在のところ全く使いません。
plot コマンド上にマスク定義がある場合、その後の同じコマンド上の image
描画、pm3d 曲面が、キーワード mask を追加することでマスクされます。
マスクを定義していなければ、そのキーワードは無視します。
以下の例は、点の集合を囲む凸包を使い、ある pm3d 曲面に対応する領域をマ
スクする方法を示します。
set table $HULL
plot $POINTS using 1:2 convexhull
unset table
set view map
set multiplot layout 1,2
splot $POINTS using 1:2:3 with pm3d, \
$POINTS using 1:2:(0) nogrid with points
splot $HULL using 1:2:(0) with mask, \
$POINTS using 1:2:3 mask with pm3d
unset multiplot
最初のパネルに対するコマンド splot は、元の点から dgrid3d で生成した
マスクされていない曲面を描画し、その後で点自身を順に描画します。2 つ目
のパネルに対するコマンド splot はマスクした曲面を描画します。マスク
の定義 (with mask での plot) は最初に行わなければならず、それを適用
する pm3d 曲面はその後であることに注意してください (描画スタイル
with pm3d にキーワード mask をつけて変更)。
この例のより完全な版は、デモ集合
mask_pm3d.dem
内にあります。
ここには示しませんが、一つのマスクが複数の多角形領域を含み得ます。
マスキングコマンドは試験段階です。詳細は、将来のリリースで変更されるか
もしれません。
竹野茂治@新潟工科大学
2023-08-29