傾いている四角形に当たり判定について

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

傾いている四角形に当たり判定について

#1

投稿記事 by ちぃす » 13年前

下の図が、ボタンだとした時について質問です。
画像
ボタンの処理は、図の上にマウスがあったと同時にクリックをするということは分かりました。
ですが、普通の四角形と違って、図のように傾いている場合の「図の上にマウスがある」という判定は、
どのように行えばいいのでしょうか?
何方か、ヒント等でもいいので教えていただけるとありがたいです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 傾いている四角形に当たり判定について

#2

投稿記事 by softya(ソフト屋) » 13年前

1つはドット単位の当たり判定マップを作ってON/OFFを調べる方法です。
ボタンの周囲の範囲にある事は調べられると思うので、その範囲の当たり判定マップを用意するだけで良いです。

2つめは、次のような数学的な当たり判定を行う方法です。
「当たり判定 - ゲームプログラミングWiki」
http://www.c3.club.kyutech.ac.jp/gamewi ... 8%BD%C4%EA
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: 傾いている四角形に当たり判定について

#3

投稿記事 by ISLe » 13年前

四角形の頂点がA,B,C,Dで、マウスカーソルの示す点がPだとします。
線分ABと線分AP
線分BCと線分BP
線分CDと線分CP
線分DAと線分DP
に対してそれぞれ(公式としての)外積から値を求め、すべて正負が同じ符号であるとき、Pは内部にあります。

辺は逆周りでもかまいません。
凹んだ角がなければ、何角形でも同じ方法で判定できます。

閉鎖

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