2011-09-05 41 views
6

下の画像では、(1)に三角形と円があります。その三角形の中の専用の点Xを与えられたら、私はこの点から見えないすべてのものを取り除きたい。 (2)のような単純なポリゴン差分アルゴリズムで円だけを取り除くことには問題ありません。しかし、(3)のようなポリゴンを得るのにどんなアルゴリズムを使うことができますか?ポリゴンクリッピング:「視認可能」領域のみ

多角形は常に単純です。

編集:円は単なる例です。すべての単純なポリゴンが可能でなければなりません。

Image #1

することはでき画像、ゲームの画像を見てとることによって私のニーズ "コマンドスを - 敵ラインの後ろに":Dへ

Image #2

+0

+1、Commandos。優れたゲーム。 –

+0

回答が得られない場合は、賞品を提示するかもしれません。 –

+0

あなたの質問は、http://stackoverflow.com/q/5892539/359538と非常によく似ています。 –

答えて

3

これが基本的な考え方です。

私はもう少し一般的な問題だと思っていますが、それはあなたの問題に適応する方がはるかに簡単です:​​にすべての形、点、幾何学図形のセットが含まれているとします。その点から見えない領域を計画から削除します。

私たちがやりたいことは、各形状について、形状に属する極小角度が最大となる2点であるstarting_polarending_polar点を得ることです。

今、私たちは​​から形状を削除しますし、我々はポイントによって形成されたquadrilateral削除します:starting_polarending_polar、および2つのストレートライン(x, starting_polar)(x, ending_polar)と​​の境界との交点を。

あなたの場合、計画は単にtriangleになります。

+0

有望私はそれを試してみましょう。 – tur1ng

+0

それは凸形状のために確実に働くでしょう。しかし、私は、形状が凹形で凸状の部分シェイプで分割することができますが、これはシェイプのすべての部分シェイプ – Simone

0

Cの並列、AとG平行、BはFに平行、Dは直径である。

Polygon

+0

申し訳ありませんが、円は単なる例であることを忘れています。すべての単純なポリゴンが可能でなければなりません。 – tur1ng

+0

いいえ、とにかくシモンの答えはどんな場合でもより良い解決策を提供します:) – HRgiger

+0

convex..ifの形が凹形である場合は必ずしも完全には機能しませんが...私は各凹形を細分することができれば凸形状の場合、問題は凹形状についても解決できます – Simone

関連する問題