
幾何学において、直線スケルトンは位相スケルトンによって多角形を表現する方法である。これは中軸といくつかの点で似ているが、スケルトンが直線セグメントで構成されているのに対し、多角形の中軸は放物線を含む場合がある点で異なる。しかし、どちらも基礎となる多角形とホモトピー同値である。[1]
直線スケルトンは、Aichholzerら(1995) [2]によって単純な多角形に対して最初に定義され、AichholzerとAurenhammer(1996)によって平面直線グラフ(PSLG)に一般化されました。 [3] 屋根面の投影としての解釈については、GA Peschka(1877)によってすでに広範囲に議論されています。[4]
意味
多角形の直線骨格は、多角形のエッジが一定の速度で内側に平行に移動する、連続的な縮小プロセスによって定義されます。エッジがこのように移動すると、エッジのペアが交わる頂点も、頂点の角度に応じた速度で移動します。移動する頂点の 1 つが隣接していないエッジと衝突すると、衝突によって多角形が 2 つに分割され、各部分でプロセスが続行されます。直線骨格は、このプロセスで移動する頂点によって描かれる曲線のセットです。図では、上の図は縮小プロセスを示し、中央の図は直線骨格を青で表しています。
アルゴリズム
直線スケルトンは、それが定義される縮小プロセスをシミュレートすることによって計算できます。直線スケルトンを計算するためのさまざまなアルゴリズムが提案されていますが、入力に対する仮定や、入力ポリゴンが縮小するときに組み合わせの変化を検出するために使用する データ構造が異なります。
以下のアルゴリズムは、多角形、穴のある多角形、または PSLG を形成する入力を考慮します。多角形入力の場合、頂点の数をnで表し、反射頂点 (凹面、つまり角度がπより大きい)の数をrで表します。入力が PSLG の場合は、多角形のセットを形成する初期の波面構造を考慮し、頂点の数をnで表し、伝播方向に対する反射頂点の数をrで表します。ここにリストされているアルゴリズムのほとんどは、実際の RAM計算モデル で設計および分析されています。
- Aichholzerら[2] [3]は、 PSLGのストレートスケルトンをO( n 3 log n )、より正確にはO(( n 2 + f )log n )で計算する方法を示しました。ここで、nは入力ポリゴンの頂点数、fは構築中の反転イベントの数です。fの最もよく知られている上限はO ( n 3 )です。
- 最悪実行時間がO( nr log n)、または単にO( n2log n)のアルゴリズムは HuberとHeld(2010, 2011)によって提案されており、彼らはこのアプローチが多くの入力に対してほぼ線形時間で実行される可能性が高いと主張している。[5] [6]
- Petr FelkelとŠtěpán Obdržálekは、単純な多角形に対してO( nr + n log r )の効率を持つと言われるアルゴリズムを設計した。 [7] [8]しかし、彼らのアルゴリズムは誤りであることが示された。[9] [10]
- エップスタインとエリクソンは、二色最近接ペア問題のデータ構造を用いて、最近接ペアデータ構造の線形更新によってストレートスケルトン問題を構築する方法を示した。四分木に基づく最近接ペアデータ構造は、 O( nr + n log n )時間のアルゴリズムを提供する。または、これよりはるかに複雑なデータ構造は、よりよい漸近的時間境界O( n 1 + ε + n 8/11 + ε r 9/11 + ε )、またはもっと簡単にはO( n 17/11 + ε )につながる。ここで、εはゼロより大きい任意の定数である。[11]これは、無制限の入力によるストレートスケルトン構築に対する最悪ケースの時間境界として知られているが、複雑であり、実装されていない。
- 一般位置の単純な多角形の場合、直線スケルトンの構築問題はより簡単です。 Cheng、Mencel、および Vigneron は、単純な多角形の直線スケルトンを O( n log n log r + r 4/3 + ε ) の時間で計算する方法を示しました。[12] 最悪の場合、r はnのオーダーになる可能性があり、その場合、この時間制限は O( n 4/3+ε ) に簡略化されます。入力多角形の頂点が O(log n) ビットの有理座標を持つ場合、入力多角形が一般位置にない場合でも、アルゴリズムを O( n log n ) 時間で実行するように改善できます。
- 直線Lに関する単調多角形は、 Lに直交するすべての直線が単一の区間で多角形と交差するという性質を持つ多角形である。入力が単調多角形の場合、その直線の骨格はO( nlog2n ) の時間で構築できる。[13]
アプリケーション
入力ポリゴン内の各ポイントは、収縮プロセスがそのポイントに到達した時間をポイントの Z 座標として使用することで、3 次元空間に持ち上げることができます。結果として得られる 3 次元サーフェスは、ポリゴンのエッジ上で一定の高さを持ち、異なる角度のサーフェス パッチが出会う直線スケルトン自体のポイントを除いて、エッジから一定の傾斜で上昇します。このように、直線スケルトンは、最初のポリゴンの形の壁に基づいて、建物の屋根の尾根線のセットとして使用できます。[2] [14]図の下の図は、このようにして直線スケルトンから形成されたサーフェスを示しています。
デメイン、デメイン、ルビウは、直線骨格を、与えられた多角形を1回の直線カットで切り取ることができるように紙を折る技術(折り曲げ切断定理)や、関連する折り紙設計問題の一部として使用しました。[15]
Barequetらは、与えられた2つの多角形チェーンの間を補間する3次元表面を見つけるアルゴリズムに直線スケルトンを使用しています。[16]
タナセとヴェルトカンプは、画像処理における形状マッチングの前処理として、直線スケルトンを使用して凹多角形を凸領域の結合に分解することを提案している。 [17]
BagheriとRazzaziは、直線状のスケルトンを使用して、グラフ描画が多角形の境界内に制約されるグラフ描画アルゴリズムで頂点の配置をガイドします。 [18]
直線スケルトンは、中心軸から丸い角を持つオフセット曲線を構築するのと同様に、斜めの角を持つ多角形のオフセット曲線を構築するためにも使用できます。友枝と杉原は、このアイデアを、広い角度から見え、奥行きがあるように見える標識のデザインに適用しています。 [19]同様に、アセンテとカーは、直線スケルトンを使用して、文字のアウトラインやその他の形状に一致する色のグラデーションをデザインしています。[20]
中心軸などの他のタイプのスケルトンと同様に、ストレートスケルトンは2次元領域を単純化された1次元表現に縮小するために使用できます。たとえば、ハウナートとセスターは、道路の中心線を見つけるために地理情報システムでストレートスケルトンのこのタイプのアプリケーションを説明しています。[21] [22]
次数が2の頂点を持たないすべての木は、凸多角形の直線の骨格として実現できます。[23]この直線の骨格に対応する屋根の形の凸包は、木の葉を閉路に接続することによって形成されたハリングラフのシュタイニッツ 実現を形成します。
高次元
Barequetらは、3次元多面体の直線骨格のバージョンを定義し、それを計算するためのアルゴリズムを記述し、いくつかの異なるタイプの多面体におけるその複雑さを分析しました。[24]
フーバーらは、対応するボロノイ図と直線スケルトンが一致する距離空間を調査した。2次元の場合、このような距離空間の特徴付けは完全である。高次元の場合、この方法は、ボロノイ図を用いて特定の入力形状の直線スケルトンを任意の次元に一般化するものとして解釈できる。[25]
参考文献
- ^ Huber, Stefan (2018). 「スケルトンとオフセットのトポロジー」(PDF) .第34回ヨーロッパ計算幾何学ワークショップ (EuroCG'18) の議事録。。
- ^ abc アイヒホルツァー、オズウィン; Aurenhammer, フランツ;アルバーツ、デイビッド。ゲルトナー、ベルント (1995)。 「ポリゴン用の新しいタイプのスケルトン」。ユニバーサルコンピュータサイエンスジャーナル。1 (12): 752–761。土井:10.1007/978-3-642-80350-5_65。MR1392429 。。
- ^ ab Aichholzer, Oswin; Aurenhammer, Franz (1996). 「平面上の一般的な多角形図形の直線スケルトン」Proc. 2nd Ann. Int. Conf. Computing and Combinatorics (COCOON '96) . Lecture Notes in Computer Science. Vol. 1090. Springer-Verlag. pp. 117–126.
- ^ ペシュカ、グスタフ A. (1877)。 Kotirte Ebenen: Kotirte Projektionen und deren Anwendung;ヴォルトレゲ。ブリュン:ブッシュチャクとイルガング。土井:10.14463/GBV:865177619。。
- ^ Huber, Stefan; Held, Martin (2010). 「オートバイ グラフに基づく平面直線グラフの直線スケルトンの計算」(PDF)。第 22 回カナダ計算幾何学会議の議事録。。
- ^ Huber, Stefan; Held, Martin (2011). 「平面直線グラフの直線スケルトンに関する理論的および実際的な結果」(PDF)。第 27 回計算幾何学シンポジウム (SCG'11) の議事録、2011 年 6 月 13 ~ 15 日、フランス、パリ。pp. 171 ~ 178。。
- ^ 「CenterLineReplacer」。FME Transformers。Safe Software。2013年 8 月 5 日閲覧。。
- ^ フェルケル、ペトル;オブドルジャーレク、シュテパン (1998)。 「ストレートスケルトン実装」。SCCG 98: コンピュータ グラフィックスに関する第 14 回春季会議の議事録。 210–218ページ。。
- ^ Huber, Stefan (2012)。ストレートスケルトンとモーターサイクルグラフの計算:理論と実践。Shaker Verlag。ISBN 978-3-8440-0938-5。。
- ^ Yakersberg, Evgeny (2004).直線スケルトンベースの補間を使用した幾何学的形状間のモーフィング。イスラエル工科大学。。
- ^ Eppstein, David ; Erickson, Jeff (1999). 「屋根を高くする、サイクルをクラッシュさせる、ビリヤードをする:ペアワイズ相互作用を見つけるためのデータ構造の応用」.離散および計算幾何学. 22 (4): 569–592. doi : 10.1007/PL00009479 . MR 1721026. S2CID 12460625.。
- ^ Cheng, Siu-Wing; Mencel, Liam; Vigneron, Antoine (2016). 「ストレートスケルトンを計算するための高速アルゴリズム」ACM Transactions on Algorithms . 12 (3): 44:1–44:21. arXiv : 1405.4691 . doi :10.1145/2898961. 。
- ^ Biedl, Therese ; Held, Martin; Huber, Stefan; Kaaser , Dominik; Palfrader, Peter (2015 年 2 月)。「単調多角形の正の重み付き直線スケルトンを計算するための単純なアルゴリズム」( PDF )。Information Processing Letters。115 ( 2): 243–247。doi :10.1016/ j.ipl.2014.09.021。PMC 4308025。PMID 25648376。 Biedl らが指摘しているように、Das らによる単調多角形用の以前のアルゴリズムは説明されているとおり正しくなく、せいぜい頂点間イベントのない一般的な位置の入力に対してのみ機能します: Das, Gautam K.; Mukhopadhyay, Asish; Nandy, Subhas C.; Patil, Sangameswar; Rao, SV (2010)。「単調多角形の直線スケルトンを O(n log n) 時間で計算する」(PDF)。第 22 回カナダ計算幾何学会議の議事録。。
- ^ ベランジェ、デビッド(2000)。建物の屋根の設計。。
- ^ Demaine, Erik D. ; Demaine, Martin L. ; Lubiw, Anna (1998). 「紙の折り方と切り方」.離散幾何学と計算幾何学に関する日本会議 (JCDCG'98) の改訂論文. コンピュータサイエンスの講義ノート. Vol. 1763. Springer-Verlag. pp. 104–117. doi :10.1007/b75044. ISBN 978-3-540-67181-7. S2CID 32962663。。
- ^ Barequet, Gill; Goodrich, Michael T. ; Levi-Steiner, Aya; Steiner, Dvir (2003). 「ストレートスケルトンベースの輪郭補間」。第 14 回 ACM-SIAM 離散アルゴリズムシンポジウムの議事録。pp. 119–127。。
- ^ Tănase, Mirela; Veltkamp, Remco C. (2003). 「直線スケルトンに基づくポリゴン分解」。第 19 回 ACM 計算幾何学シンポジウムの議事録。pp. 58–67。doi :10.1145 / 777792.777802。ISBN 1-58113-663-3.S2CID 18173658 。。
- ^ Bagheri, Alireza; Razzazi, Mohammadreza (2004). 「ポリゴンスケルトンを使用した単純なポリゴン内の自由木描画」.コンピューティングと情報科学. 23 (3): 239–254. MR 2165282.。
- ^ 友枝明康、杉原厚吉 (2012)。「新しい錯覚立体記号の計算による作成」。第9回科学技術におけるボロノイ図に関する国際シンポジウム (ISVD 2012)。pp. 144–147。doi :10.1109 / ISVD.2012.26。ISBN 978-1-4673-1910-2. S2CID 27610348。。
- ^ Asente, Paul; Carr, Nathan (2013). 「3D ベベルを使用した輪郭グラデーションの作成」。計算美学に関するシンポジウムの議事録 (CAE '13、カリフォルニア州アナハイム)。米国ニューヨーク州ニューヨーク: ACM。pp. 63–66。doi : 10.1145/2487276.2487283。ISBN 978-1-4503-2203-4. S2CID 17302186。。
- ^ Haunert, Jan-Henrik; Sester, Monika (2008). 「直線スケルトンに基づくエリア崩壊と道路中心線」GeoInformatica . 12 (2): 169–191. doi :10.1007/s10707-007-0028-x. S2CID 2169666.。
- ^ Raleigh, David Baring (2008)。GPS 粗取得データからの道路中心線の直線スケルトン測量調整: ボリビアのケーススタディ。オハイオ州立大学、測地科学および測量。。
- ^ Aichholzer, Oswin; Cheng, Howard; Devadoss, Satyan L.; Hackl, Thomas; Huber, Stefan; Li, Brian; Risteski, Andrej (2012). 「木をまっすぐな骨格にするものは何ですか?」(PDF)。第 24 回カナダ計算幾何学会議 (CCCG'12) の議事録。。
- ^ Barequet, Gill; Eppstein, David ; Goodrich, Michael T .; Vaxman, Amir (2008). 「3次元多面体の直線スケルトン」。Proc . 16th European Symposium on Algorithms . Lecture Notes in Computer Science. Vol. 5193. Springer-Verlag. pp. 148–160. arXiv : 0805.0022 . doi :10.1007/978-3-540-87744-8_13. ISBN 978-3-540-87743-1. S2CID 42150。。
- ^ Huber, Stefan; Aichholzer, Oswin; Hackl, Thomas; Vogtenhuber, Birgit (2014). 「多面体距離関数の下でのボロノイ図による直線スケルトン」(PDF)。第26回カナダ計算幾何学会議 (CCCG'14) 論文集。。
外部リンク
- エリックソン、ジェフ。「単純な多角形の直線スケルトン」。
- 計算幾何学アルゴリズムライブラリCGALの 2D ストレート スケルトン
- 穴のあるポリゴン用のストレート スケルトン。Java で実装されたストレート スケルトン ビルダー。
- Amit Parnerkar、Sarnath Ramnath。「O(n log n) で単純な多角形の直線の骨格を見つけるための効率的なアルゴリズムの設計」。
- STALGO: 「STALGO は、直線スケルトンと斜めオフセット曲線を計算するための産業用 C++ ソフトウェア パッケージです。」 (Stefan Huber 著)
