線と線の当たり判定

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

線と線の当たり判定

#1

投稿記事 by rarara » 17年前

はじめまして。
早速質問なのですが、
線と線の当たり判定はどのようにすればいいのでしょうか?
四角形同士の判定ならサイトにあるとおりに出来るのですが・・・
自分で調べてみると、一応、線同士の当たり判定を書いているサイトはあったのですが、
線の交点まで求めるものばかりで、ソースが長く、処理が重いものばかりでした。
アクションゲームで使いたいので、交点の座標は必要なく当たっているかいないかだけわかればいいのですが、
どのようにすればいいでしょうか?


Re:線と線の当たり判定

#3

投稿記事 by » 17年前

線を座標で処理してはどうでしょうか?
線は点の連続描画であるので、全て点で管理してしまえば当たり判定も楽ではないかと思います。
アクションゲームであるとの事なので、1ドットではなく、多少大きいかと思いますので…

現在判別する座標と、各線を構成する点が同じでないかどうかというのではどうでしょうか?
画像使用であれば、
始点のときは、画像1(片方が切れているやつ
終点のときは、画像2(上に同じ
始点フラグON&終点フラグOFFの時、画像3(両方が切れているやつ

これで対処できないでしょうか?
試したことがないので、ただの考えですが・・・

交差の判定は、動いた直線の始点を検査座標にして、他の線の座標とかぶっていないかどうか調べる
関数に座標と調べたい直線も渡す。
内部で、x座標が等しいか調べ、等しいならy座標も調べる。

あんまり早い処理じゃない気がしますが…参考になりますか????

Justy

Re:線と線の当たり判定

#4

投稿記事 by Justy » 17年前

>線と線の当たり判定はどのようにすればいいのでしょうか?
 どのサイトを見たのかはわかりませんが、多分その参考にしたサイトに
あるとおりの判定だと思います。

 ただ、高速化の方法はいろいろあると思いますよ。
 たとえば、各「線分の中心から、線分の端点を通過する円」同士の
交差判定を先に行い、交差しないので有れば線も交差しないのでスキップし、
円が交差しているようなら、線分も交差している可能性があるとして、
ちゃんと計算して調べる、とか。

 円じゃなくても線分の端と端を対角線とするボックス同士をチェックしてから
でもいいですね。


>処理が重いものばかりでした
 実際にそんなに重かったですか?

閉鎖

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