0

私は XNA 4.0 にかなり慣れていないので、理解できない問題があります。これまでは四角形を作ってrectangle.containsメソッドをチェックすることでマウスのクリックを検出してきましたが、四角形の内部をチェックしたくない場合はどうすればよいでしょうか?

マップの一部に、ユーザーにクリックさせたい三角形のボタンがありますが、実際に三角形の内側にある場合にのみクリックとしてカウントしたいと考えています。三角形の周りに長方形を作成すると、意味がわかれば、ユーザーはテクスチャ領域の外側をクリックできるようになります。

どうすればこれを行うことができますか?

4

1 に答える 1

1

より複雑な形状には、 Point in Polygon アルゴリズムを使用する必要があります。

凸多角形 (三角形) のチェックは、凹多角形のチェックよりも簡単です (最初のリンクされた記事を参照)。

多くのチェックを行う必要があり、パフォーマンスの限界に達している場合は、ある種の階層、QuadtreeまたはLODシステムの使用を検討してください。たとえば、非常に複雑なポリゴンに対して追加の境界四角形を計算し、ポイントが四角形の内側にある場合にのみ、コストのかかるポリゴンのチェックを行うことができます。

于 2013-01-29T12:39:39.570 に答える