C# 「自己交差」しているか判定方法。CombinedGeometryを利用。

本日は、C#の記事です。

点のパスが自己交差しているか、判定したい場面がでてきました。

例えば

①のパスは、自己交差していないが

②のパスは、自己交差しています。

 

以下のようなやり方で判定しました。

CombinedGeometryをGeometryCombineMode.Intersectを利用します。

Intersectで結合させると、混ざっている結合部分だけを、抜きだします。

①、②それぞれの図形で、その図形を含む、大きな四角形と結合させます。

Intersectの結合結果に対してGetFlattenedPathGeometryで何個の多角形が

できているかを判定します。

1つだった場合、自己交差なし。

2つ以上だった場合、自己交差しているとなります。

このようなコードになります。参考になる部分がありましたら。

 

ちよっと休憩時間にどうでしょうか・・・

Android 無料 ゲーム

落とし系ゲーム「スプーンで落とせ! (動物のジャングルレストラン)」

スプーンで落とせ! (動物のジャングルレストラン)

 

回転するテーブル上に食べ物がのっていて、ボタンを押すとスプーンがクレーンのように動き出します。タイミングよく、食べものをお皿に落としてください。

動物のお客様が順番に訪れます。動物たちのご注文に答えることができると、コインを獲得できます。

たとえば、おサルがお客さんの時はバナナが注文されるので、バナナを落とせるように頑張りましょう!

ストアへ