- 締切済み
回転する四角や円で当たり判定をしたいのですが
回転する四角や円で当たり判定をしたいのですが 数学に弱いものでよくわかりません どうやって当たりを判定すればいいでしょうか? わかり難い質問ですいません よろしくお願いします
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- magicalpass
- ベストアンサー率58% (378/648)
当たりを判定する対象物の座標が、四角なり円の領域に含有されているかどうかということだと思いますが……。現実にはこの対象物も大きさがあるから判定する座標が複数集まった集合だと見なしますが、理屈を考える上では単一の座標点と考えます。 回転する図形は、回転中心と回転角度によって定まります。回転角度は回転角速度×時間なので、時間によって変化する量です。回転中心が移動している場合は、これも時間に依存する量となります。 四角の場合は4つの頂点を結ぶ4本の線分で囲まれた領域が判定領域となります。ある時点での各頂点の座標はそれぞれ回転中心と回転角度によって決まります。頂点の座標が決まれば線分の方程式も決まるので、判定対象の座標がその四角に囲まれた領域内にあるかどうかも判定出来ます。 円の場合はもう少し簡単です。判定領域は円の中心から半径距離の範囲です。ある時点での円の中心は同様に回転中心と回転角度によって決まります。円の中心が決まれば、あとは判定対象の座標が半径距離内にあるかどうかを判定するだけです。 回転中心が固定(x0,y0)、回転角速度一定ω、時間tの時、回転図形上の点(x,y)はt=0の時に(x1,y1)にあるとすると、 回転半径rは r = √((x1-x0)^2 + (y1-y0)^2) 初期角度θは sinθ = (y1-y0)/r cosθ = (x1-x0)/r この時、(x,y)は x = x0 + r・cos(θ+ωt) y = y0 + r・sin(θ+ωt) (PC上の座標系は数学の座標系とはy方向が逆なので、回転方向の正は時計回り) 以上の式を四角形の頂点や円の中心に用いて計算していけば良いはずです。