100.3.5.3 凹包 (concavehull)

試験段階 (実装の詳細は将来のリリースで変更するかもしれません)。あなた の gnuplot が –enable-chi-shapes 付きでビルドされた場合のみ利用可能。

凹包 (concavehull) は、描画スタイルではありません。これは、入力データ 点の境界多角形「閉包」(hull) を見つけるフィルタの一つで、これは、元の 点集合を、この多角形の周上の順序づけられた部分集合で置き換えます。凸包 は任意の点集合に対して一意に決定しますが、これはそれとは違い、複数の凹 包がありえます。そこから一つの凹包を選択する仕組みはさまざまありますが、 gnuplot は Duckham ら (2008; Patttern Recognition 41:3224-3236) によっ て定義されたχ-形状の閉包を生成します。

Image figure_concave_hull_1
与えられた点集合に対し、ドロネー三角形分割から三角形を反復削除すること でχ-形状を生成します。各反復では、以下の基準に従って三角形を一つ削除 します: (1) 一点で接触する境界形状の連結度を減らさない場合は削除に望ま しい、(2) 三角形の一つの辺が現在の周囲の最も長い線分である場合、(3) こ の辺が事前に選択した、χ-形状を完全に決定する特性長パラメータより長い 場合。gnuplot では、この特性長パラメータは、ユーザー変数 chi_length から取ります。反復は、取り除ける三角形がなくなったら停止します。 chi_length が大きい場合、三角形は一つも取り除けず、χ-形状は元の周で ある凸包になります。chi_length を小さくするとその分多くの三角形が削 除され、最終的な形状は凸性がより低くなります。小さすぎる chi_length は望ましくありません。

Image figure_concave_hull_2
chi_length の適切な選択は、入力データ点の分布と密度に強く依存します。 ユーザが chi_length を設定しなければ、gnuplot はそれを自動的に選択し ますが、それがあなたのデータに対し適切である保証はありません。この図に 示されてるデータに対しては、gnuplot は chi_length=22.6 をデフォルトで 選択し、これは凸包の最長辺の 0.6 倍の長さです。デフォルトで使用される この最長辺に対する比率は、コマンド set chi_shape fraction <value> で 変更できます。

現在のグラフで使った、ユーザ定義か gnuplot が選択した chi_length の 値は、変数 GPVAL_CHI_LENGTH に保存します。

オプションキーワード expand と増分値 (<increment>) は、閉包の各辺を 固定した距離だけ内部から遠ざけます。これは、元のすべての点の外側にある 閉曲線を構成する、新たな点集合を生成します。それは、smooth path と組 み合わせることが可能です。

竹野茂治@新潟工科大学
2024-12-02