せっかくなので,ここに置いておきますね.
長方形と円の当たり判定
//(cx,cy)は,長方形の中心を原点とした 円の中心座標
//円の半径をr
//長方形の縦横のサイズを hW*2,hH*2 とする
//((hW,hH,rは全て正の値であること)
bool Rect_vs_Circle_CollisionCheck( double hW, double hH, double cx, double cy, double r )
{
cx = fabs( cx );
cy = fabs( cy );
if( cx <= hW ){ return ( cy<=hH+r ); }
if( cy <= hH ){ return ( cx<=hW+r ); }
//角との判定
double dx = cx - hW;
double dy = cy - hH;
return ( dx*dx + dy*dy <= r*r );
}
【長方形の中心を原点とし,長方形の 長辺に平行な方向 と 短辺に平行な方向 とを座標軸の方向とした直交座標系】での座標です.
(平たく言えば,「長方形が斜めに回転してるような場合は,回転後の世界での座標を求めて与えてね」みたいな.)