先に結論を書きます。 円を中心が (x, y) 半径 r で軸並行矩形の中心が (cx, cy) 横幅が w 縦幅が h とすると、 bool HitTestCircle2AABB(float x, float y, float r, float cx, float cy, float h, float w) { float dx = std::max(0.f, std::abs(x - cx) - w); float dy = std::max(0.f, std::abs(y - cy) - h); return dx * dx + dy * dy <= r * r; } 導出 アイデア1 …