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.3
- 回答日時:
物体が移動することを考えると速度的に厳しいかもしれませんが・・・
当たり判定「されるもの」と「するもの」のリージョンをそれぞれ作成し、
その2つのリージョンで共有される領域があるかどうかを調べる方法もあります。
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.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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
河合模試である大学がB判定でし...
-
ある病原菌を検出する検査法に...
-
6月の共テ模試が6割しか取れな...
-
共通テストリサーチについてで...
-
阪大実戦、まさかのD判定でした...
-
予備校にも通わず模試判定も受...
-
河合模試の判定について
-
マナビジョンの進研模試は私立...
-
第一志望の国公立大学がC判定で...
-
大阪大学理学部に現役合格した...
-
模試をすっぽかした
-
静岡大学について
-
模試の結果が違いすぎ!!
-
11月の時点でC判定での合格はむ...
-
Excelによる土日と祝祭日の算出...
-
模試で科目不足の判定になって...
-
学習院過去問で6.5割は合格可能...
-
センターリサーチで第一志望の...
-
高校の偏差値55から東京都市大...
-
努力できない自分 こんにちは、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
7月に受けた模試でC判定だった...
-
6月の共テ模試が6割しか取れな...
-
模試をすっぽかした
-
阪大実戦、まさかのD判定でした...
-
高2で結構難易度高めの国公立志...
-
高3です 名大理学部を志望して...
-
至急です! 河合塾の共通テスト...
-
模試で科目不足の判定になって...
-
模試の結果が返って来て教科の...
-
進研模試について(高2です) 先...
-
模擬試験で、志望校が学部内で5...
-
進研模試のD判定はどのくらいの...
-
共通テストで大失敗しました。
-
第一志望の国公立大学がC判定で...
-
北海道大学から弘前大学に落と...
-
恒等式と方程式の見分け方が分...
-
九大機械系の前期と九工大後期...
-
明治大学の全学部は英検利用で...
-
埼玉大学経済学部のオススメの...
-
武蔵大学の評判を教えて下さい...
おすすめ情報