98.3.5.2 凸包 (convexhull)

convexhull は描画スタイルではありません。これは、フィルターキーワード として単独で、または smooth pathexpand <increment> との組み合 わせとして使います。


    plot FOO using x:y convexhull
    plot FOO using x:y convexhull smooth path
    plot FOO using x:y convexhull expand <increment> {smooth path}

Image figure_convex_hull
これは、FOO 内の点を、それを包含する凸多角形を構成する一意的な部分集合、 すなわち凸包 (convex hull) で置き換えます。この多角形の頂点集合は、時 計回りの閉曲線となるように出力します。よってその曲線の始点と終点は一致 し、linespolygons, filledcurves の描画スタイルで適切に描画で きるようにしています。凸包は、画像や元々のデータ点すべてを含む pm3d 曲 面のある領域を選択的に描画するマスクとしても便利に使えます。以下参照: masking (56)

キーワード smooth をつけると、その頂点は滑らかな曲線を生成するための ガイド点として使います (以下参照: smooth path (98.3.8.6))。デフォルトでは、その 平滑化曲線はガイド点を通ります。

オプションのキーワード expand と増分値 (<increment>) は、凸包の辺の 線分を増分値の距離だけ内部から遠ざけます。そして移動した線分を留め継ぎ (mitered) でつなぎます。これは、元々の凸包の各頂点を 2 つの頂点で置き 変えることを意味しますが、それは隣接する辺との間に隙間ができてしまうか らです。

竹野茂治@新潟工科大学
2023-08-29