
No.2ベストアンサー
- 回答日時:
この手の判定をきちんとする場合は、幾何学系の計算が必要になってきます。
No1さんの仰るように、ゲームなど高速かつ簡易的に判定するのであれば、四角形同士のあたり判定がよいでしょう。
四角形同士は
r1.left < r2.right && r1.right > r2.left
&& r1.top < r2.bottom && r1.bottom > r2.top
で判定できます。
もし多角形や円などさまざまな形同士であたり判定するならば、それぞれの形状同士のあたり判定(交差・オーバーラップ)を実装しなくてはいけません。
具体的なコードを書くと長いので、アドバイスとして以下のようなクラスを作ってみてはいかがでしょう?
class line_seg
{
public:
bool hittest (const line_seg &);
bool hittest (const polygon &);
bool hittest (const circle &);
};
class polygon
{
public:
bool hittest (const line_seg &);
bool hittest (const polygon &);
bool hittest (const circle &);
};
class circle
{
public:
bool hittest (const line_seg &);
bool hittest (const polygon &);
bool hittest (const circle &);
};
あと、多角形同士の判定の場合、線分の交差判定のみでは、内包されるようなパターンの時にだめですので、気をつけてください。
No.4
- 回答日時:
「衝突判定」「コリジョン」で検索すると多くの有用な情報が得られますので検索してみてください。
http://www.gamespp.com/algorithms/collisiondetec …
他の回答者と殆ど同じですが、一般的には、高速に判定するために簡単な方法で関係ない組み合わせを除き、その後は、線分交差が有れば衝突、ない場合でも内包されている場合は衝突、それ以外は衝突していない。。ような判定を行います。
1)高速な衝突しない図形判定
図形データをエリア分けしておき、離れているエリア図形とは衝突しないので除く。
同一エリアや隣接エリア図形とは、図形を円や長方形で近似した図形同士で簡単に衝突しない図形は除く。
2)1)で除かれなかった図形は衝突の可能性が有るので詳細な衝突判定を行う。
参考URL:http://hspwiki.nm.land.to/?%BE%D7%C6%CD%C8%BD%C4 …
No.1
- 回答日時:
もしゲームのあたり判定であればグラフィックリソースとは別に
四角形のあたり判定属性を用意するのが普通。(3Dなら直方体)
n角形とm角形の辺り判定を厳密に判定するには
各線分が交差するかどうかをみていけば良いでしょう。
(ax1,ay1)-(ax2,ay2)・・・線分1
(bx1,by1)-(bx1,by1)・・・線分2
が交差する条件
(ay1-ay2)(bx1-ax1)-(ax1-ax2)(by1-ay1)・・・(1)式
(ay1-ay2)(bx2-ax1)-(ax1-ax2)(by2-ay1)・・・(2)式
(by1-by2)(ax1-bx1)-(bx1-bx2)(ay1-by1)・・・(3)式
(by1-by2)(ax2-bx1)-(bx1-bx2)(ay2-by1)・・・(4)式
(1)式*(2)式 <= 0 && (3)式*(4)式 <= 0
これがが成立するとき線分が交差します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
模試で科目不足の判定になって...
-
6月の共テ模試が6割しか取れな...
-
模擬試験で、志望校が学部内で5...
-
ある病原菌を検出する検査法に...
-
国立大学E判定でした。 しかし...
-
中身がFALSEなのにTRUEになる
-
大学受験について
-
進研模試の結果が悪かったです。
-
模試の結果が返って来て教科の...
-
センターリサーチでC判定だった...
-
東洋大学の共通テスト利用について
-
河合模試である大学がB判定でし...
-
私大共通テスト利用でB判定って...
-
恒等式と方程式の見分け方が分...
-
センター利用で、駿台ではA判定...
-
国公立二次試験について 河合塾...
-
愛知県立大が横浜市立大学か
-
ホリエモンは東大E~F判定で一橋...
-
明治大学の全学部は英検利用で...
-
静岡大学について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
6月の共テ模試が6割しか取れな...
-
至急です! 河合塾の共通テスト...
-
模試をすっぽかした
-
模試で科目不足の判定になって...
-
模試の結果が返って来て教科の...
-
九大機械系の前期と九工大後期...
-
ある病原菌を検出する検査法に...
-
奈良女子大か大阪教育大か
-
私大共通テスト利用でB判定って...
-
高3の進研模試について質問です...
-
模擬試験で、志望校が学部内で5...
-
恒等式と方程式の見分け方が分...
-
11月の時点でC判定での合格はむ...
-
中身がFALSEなのにTRUEになる
-
阪大実戦、まさかのD判定でした...
-
武蔵大学の評判を教えて下さい...
-
浪人生です。文系、早慶志望で...
-
大学出願を信州大の物質科学か...
-
受信メールの件名の直前に SPAM...
-
九州大学志望の受験生ですアド...
おすすめ情報