usaoさんの言うように、円と長方形の当たり判定に帰着させる方法が良さそうですね。
まず、
点と直線と平面と交点と距離
に載っている方法で、球の中心点から円柱の中心軸に垂線を下ろした時の交点を求めます。
すると、この交点を原点、円柱の中心軸をx軸、交点と球の中心点を通る直線をy軸 (軸の向きは適当に)
とした平面を考えることができ、
その平面における球の中心点、および円柱の2個の底面と中心軸の交点の座標 (≒距離) がわかるはずです。
あとは、これらの座標と、球や円柱の半径を用いて、当たり判定をする円と長方形の座標が求まります。
- 円と長方形への帰着
- mixcpp-20210809.png (11.75 KiB) 閲覧数: 7732 回
円と長方形の当たり判定は、たとえばここで。
よしいずの雑記帳 円と長方形との当たり判定