首页 > 解决方案 > 圆弧与矩形的交点

问题描述

假设有一个圆弧和一个矩形。

圆弧具有位置、半径、最小和最大角度以及圆弧本身的宽度。矩形具有位置、宽度和高度以及旋转。

如何确定圆弧和矩形是否相交?

提供了可以增加清晰度的视觉辅助。绿色矩形是被认为相交的矩形,而红色矩形不相交。

我已经确定单独检查矩形的每个线段上的交点是很常见的,但我还不确定如何解释矩形在弧的内部但距离不够近而无法相交。

标签: geometrycollision-detectionintersection

解决方案


对于完全在弧内的矩形,您可以检查 - 是否有任何角点(x, y)属于粗弧。对于圆心(cx, cy)、内半径和外半径rR角度a0,a1

dist = length(x - cx, y - cy)
if dist lies in range r..R:
   angle = atan2(y-cy, x-cx)
   if angle in range a0..a1:
       rectangle is inside 

另一种非标准情况:查找弧是否完全位于大矩形内 - 只需检查弧的任何点是否位于该矩形内。


推荐阅读