
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で質問しましょう!
似たような質問が見つかりました
- 数学 場合の数、確率 28 円周上の鋭角三角形 6 2023/07/06 08:51
- 数学 三角比の相互関係「sinA^2+cosA^2=1」が直角でなくても成り立つ理由について。 これは、三 8 2022/03/31 09:22
- その他(学校・勉強) 360角形が、いちばん丸に近い形 30°の三角定規12枚で、 花びらの華の様に見える為だよねぇ〜 っ 3 2023/01/12 05:46
- Illustrator(イラストレーター) イラストレーターで文字の背景に自動で入れた長方形の左側の角だけ丸く(右側だけ直角に)する方法 4 2023/04/21 11:08
- 数学 場合の数、確率 29 導入問題 ( 円周上の鋭角三角形) 4 2023/07/06 18:00
- 数学 サーケーリ・ルジャンドルの第2定理 4 2022/08/30 16:41
- 数学 凸多角形を用いた正方形の作図 4 2022/04/03 21:57
- 数学 【数学の図形の名称と面積の計算方法】正三角形と扇形があります。正三角形の2辺を伸ばす 9 2023/02/06 23:30
- 数学 中3 円周角の定理の問題です 3 2022/06/29 22:21
- 数学 点Oを中心とし、半径が5である円Oがある。この円周上に2点A、B をAB=6となるようにとる。また、 5 2023/08/16 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
6月の共テ模試が6割しか取れな...
-
武蔵大学の評判を教えて下さい...
-
大学出願を信州大の物質科学か...
-
九大機械系の前期と九工大後期...
-
大学受験に関してですが、 先生...
-
高3女子です 二次試験について...
-
大学受験について
-
私大共通テスト利用でB判定って...
-
中身がFALSEなのにTRUEになる
-
模試の結果が返って来て教科の...
-
阪大実戦、まさかのD判定でした...
-
志望校の判定が河合塾では、A判...
-
受信メールの件名の直前に SPAM...
-
奈良女子大か大阪教育大か
-
明治大学の全学部は英検利用で...
-
ある病原菌を検出する検査法に...
-
模試をすっぽかした
-
私大文系志望の高3です。 6月...
-
Excelによる土日と祝祭日の算出...
-
東京外国語大学は、大学ランク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
河合塾で浪人してる者ですが、...
-
6月の共テ模試が6割しか取れな...
-
九大機械系の前期と九工大後期...
-
奈良女子大か大阪教育大か
-
ある病原菌を検出する検査法に...
-
私大共通テスト利用でB判定って...
-
中身がFALSEなのにTRUEになる
-
模試の結果が返って来て教科の...
-
受信メールの件名の直前に SPAM...
-
至急です! 河合塾の共通テスト...
-
ベネッセ実力判定テストについて
-
11月の時点でC判定での合格はむ...
-
共通テストで大失敗しました。
-
模試をすっぽかした
-
恒等式と方程式の見分け方が分...
-
大学出願を信州大の物質科学か...
-
高3の進研模試について質問です...
-
模試で科目不足の判定になって...
-
武蔵大学の評判を教えて下さい...
-
阪大実戦、まさかのD判定でした...
おすすめ情報