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

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

回答の条件
  • 1人50回まで
  • 13歳以上
  • 登録:2016/07/22 16:45:54
  • 終了:2016/07/23 10:51:55

ベストアンサー

id:pyopyopyo No.1

pyopyopyo回答回数337ベストアンサー獲得回数792016/07/22 23:10:25

ポイント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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません