試験段階 (実装の詳細は将来のリリースで変更するかもしれません)。あなた
の gnuplot が –enable-chi-shapes 付きでビルドされた場合のみ利用可能。
凹包 (concavehull) は、描画スタイルではありません。これは、入力データ
点の境界多角形「閉包」(hull) を見つけるフィルタの一つで、これは、元の
点集合を、この多角形の周上の順序づけられた部分集合で置き換えます。凸包
は任意の点集合に対して一意に決定しますが、これはそれとは違い、複数の凹
包がありえます。そこから一つの凹包を選択する仕組みはさまざまありますが、
gnuplot は Duckham ら (2008; Patttern Recognition 41:3224-3236) によっ
て定義されたχ-形状の閉包を生成します。
与えられた点集合に対し、ドロネー三角形分割から三角形を反復削除すること
でχ-形状を生成します。各反復では、以下の基準に従って三角形を一つ削除
します: (1) 一点で接触する境界形状の連結度を減らさない場合は削除に望ま
しい、(2) 三角形の一つの辺が現在の周囲の最も長い線分である場合、(3) こ
の辺が事前に選択した、χ-形状を完全に決定する特性長パラメータより長い
場合。gnuplot では、この特性長パラメータは、ユーザー変数 chi_length
から取ります。反復は、取り除ける三角形がなくなったら停止します。
chi_length が大きい場合、三角形は一つも取り除けず、χ-形状は元の周で
ある凸包になります。chi_length を小さくするとその分多くの三角形が削
除され、最終的な形状は凸性がより低くなります。小さすぎる chi_length
は望ましくありません。
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 と組
み合わせることが可能です。
竹野茂治@新潟工科大学
2023-09-28