// f:矩形
// // f_rotation 矩形旋转角度
// c: 圆形
bool collision( float f_x, float f_y, float f_width, float f_height,
float f_rotation, float c_x, float c_y, float c_radius)
{
float sint, cost;
float w, h, rx, ry, r;
cost = Math.cos(f_rotation);
sint = Math.sin(f_rotation);
w = f_width;
h = f_height;
r = c_radius;
rx = (c_x - f_x) * cost + (c_y - f_y) * sint;
ry = -(c_x - f_x) * sint + (c_y - f_y) * cost;
float dx = Math.min(rx, w*0.5f);
dx = Math.max(dx, -w*0.5f);
float dy = Math.min(ry, h*0.5f);
dy = Math.max(dy, -h*0.5f);
return (rx - dx)*(rx - dx) + (ry - dy)*(ry - dy) <= r*r;
}