通知
すべてクリア
Topic starter
2006年5月1日 10:25 AM
CRect::PtInRect を使い当たり判定をしています。
このとき四角形の角度を変化させて(例えば30度)四角形の頂点を算出し
四角形の当たり判定をしたいと思っているのですが
当然PtInRect関数は使えないので
どのようなロジックを組めばよいのでしょうか?
ご教授お願いします。
2006年5月1日 10:32 AM
それは既に矩形ではなくてポリゴンなのでは?
ポリゴンと点の内外判定で調べて見てはどうでしょう。
幾何計算系の関数でそんな事をやってくれるライブラリが転がっているかも。
無ければ、その手の本やホームページでアルゴリズムを調べて
自分で実装するのも一興かと。
2006年5月1日 11:21 AM
四角形の各頂点を回転する計算方法は既知、という前提でお話します。
回転後の各辺(全部で4本)と 点の内積を取り、その符号が全て同一か否か
で内外判定ができます。
凸(凹も?)多角形全般かつ軽い計算でピッキング用衝突検出をできるのが特徴です。
2006年5月1日 12:23 PM
計算が面倒なら、リージョン(CRgn)を使うとか。
2006年5月1日 1:07 PM
CRgn::PtInRegion これね。
Topic starter
2006年5月1日 1:55 PM
PATIO様、しん様、dairygoods様、たいちう様
ご回答有難うございます。
内積をとり内外判定を調べるコトでで当たり判定をとることが出来ました。
私はまだ数学の知識が足りなかったみたいです。
CRgn…こんな便利なクラスがあることは知りませんでした。
MFC時に組み込んでみようと思います。
解決しました。有難うございました。