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ランキング
-
九大機械系の前期と九工大後期...
-
大学入試の合格判定をする模試...
-
高2で結構難易度高めの国公立志...
-
共通テストで大失敗しました。
-
武蔵大学の評判を教えて下さい...
-
河合模試である大学がB判定でし...
-
第一志望の国公立大学がC判定で...
-
進研模試のD判定はどのくらいの...
-
私大共通テスト利用でB判定って...
-
高校の偏差値55から東京都市大...
-
この春から高三になる者です。 ...
-
僕は今高校2年生で今年志望大学...
-
埼玉大学経済学部のオススメの...
-
模試の判定
-
センターリサーチでD判定でした...
-
宮崎県立看護大学がC判定で、河...
-
バンザイシステムについて
-
阪大実戦、まさかのD判定でした...
-
今年都留文科大学の比較文化学...
-
A判定でも落ちるときは落ちます...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
私大共通テスト利用でB判定って...
-
第一志望の国公立大学がC判定で...
-
共通テストで大失敗しました。
-
河合模試である大学がB判定でし...
-
国公立二次試験について 河合塾...
-
阪大実戦、まさかのD判定でした...
-
大学受験の滑り止めの赤本は解...
-
共通テストリサーチについてで...
-
私の志望している大学は、共テ...
-
武蔵大学の評判を教えて下さい...
-
受験に詳しい方に回答お願いし...
-
東洋大学の共通テスト利用について
-
高2で結構難易度高めの国公立志...
-
志望校の判定が河合塾では、A判...
-
新潟大学の二次試験の難易度に...
-
センター利用bよりのc判定でし...
-
センターリサーチでD判定でした...
-
共通テストで失敗してしまい、...
-
大学受験について
-
志望校判定についてです。 募集...
おすすめ情報