矩形と直線の当たり判定

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
B/B

矩形と直線の当たり判定

#1

投稿記事 by B/B » 16年前

初めまして。現在シューティングゲームを作っているのですが、
高速で移動する弾丸の当たり判定は、"直線"ということにして行おうと思ったのですが、その組み方がわかりません。

直線:(x1,y1)から(x2,y2)まで移動する直線
矩形:(cx,cy)に存在し、幅が(width,height)の矩形 ※座標は矩形の中心

この矩形と直線の当たり判定の作り方を教えてください。

矩形と矩形、円と円の当たり判定なら簡単でわかるのですが、
矩形と直線の当たり判定の例は、ネットで検索しても見つかりませんでした(あってもFlashなどの別環境でソースが理解できませんでした)。

MNS

Re:矩形と直線の当たり判定

#2

投稿記事 by MNS » 16年前

矩形の四隅が、線分の全て上にある、もしくは下にあるのならば、矩形は線分をまたいでいません。
逆に、一つでも違う方向のものがあれば、またいでいると言えるでしょう。

(x1,y1)と(x2,y2)を通る直線の式を求め、
その式と矩形の四隅の点を比較していけば、出来るかもしれません。

実装したことがないので、あんまり自信はないんですが・・

ねこ

Re:矩形と直線の当たり判定

#3

投稿記事 by ねこ » 16年前

>MNSさん
僕が正しく理解出来ていないだけかもしれませんが、それだと/□という状態で( スラッシュはもうちょい小さいイメージで)成立しちゃわないでしょうか。

矩形を4本の線分と考えて、どれかと実交点を持つ時当たっていると判定するのはどうでしょうか。

B/B

Re:矩形と直線の当たり判定

#4

投稿記事 by B/B » 16年前

MNSさん、ねこさんご回答ありがとうございます。
ねこさんの矩形の直線を一本ずつ交差している、あるいは直線が矩形に囲まれているときに
接触したと判定するように、試してみたいと思います。

閉鎖

“C言語何でも質問掲示板” へ戻る