2つの凹凸を含む多角形の共通部分を抜き出すアルゴリズムを教えてください。

ベクタ形式の凹凸を取りうる多角形同士が重なる共通部分を抜き出すアルゴリズムが分からず困っております。
もし何か参考になるものがあればそれを、なければそのものズバリのアルゴリズムをご教授ください。
凹角形であれば複数の共通部分が出てくる場合もあると思いますが、その場合においてもそれぞれの共通部分を取得したいです。
言語はC#が望ましいですが、分かるものであればなんでもよいです。
どうかよろしくお願い致します。

回答の条件
  • 1人50回まで
  • 登録:
  • 終了:2016/07/23 10:51:55
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:pyopyopyo No.1

回答回数377ベストアンサー獲得回数98

ポイント1000pt

Vatti clipping アルゴリズムが良いと思います
https://en.wikipedia.org/wiki/Vatti_clipping_algorithm
アルゴリズムの詳細は以下のPDFが詳しいです.
英語ですが,図や擬似コードが載っていますので理解しやすいと思います
http://extras.springer.com/2005/978-1-84628-108-2/VattiClip.pdf

C#用のライブラリもあります.オープンソースなので,ソースコードを読めば具体的な実装方法も判るはずです
http://www.angusj.com/delphi/clipper.php
サンプルコードは以下のページの下の方にあります
http://www.angusj.com/delphi/clipper.php#code

id:hnzwtv

ありがとうございました。

2016/07/23 10:51:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません