我正在使用C++实现一个方法,以检测在2D平面上发生两个静态轴对齐形状重叠的情况。这些形状可以是正方形或圆形,因此我需要考虑三种情况:正方形-正方形、圆形-圆形和圆形-正方形。
正方形-正方形和圆形-圆形都很简单,但我在网上找不到关于计算正方形-圆形重叠的正确算法的可靠信息。
我知道可以将正方形嵌入圆形(或反之)作为粗略的方法,但我想知道更精确的清晰方法是什么?
在线研究表明,这个问题有一个“正确”的答案,但并没有明确说明具体的答案是什么。
正方形-正方形和圆形-圆形都很简单,但我在网上找不到关于计算正方形-圆形重叠的正确算法的可靠信息。
我知道可以将正方形嵌入圆形(或反之)作为粗略的方法,但我想知道更精确的清晰方法是什么?
在线研究表明,这个问题有一个“正确”的答案,但并没有明确说明具体的答案是什么。
A
和B
是矩形边的两个端点,长度为l
,C
是圆心。令d
为C
到线(AB)的距离,您有这个关系式abs(ABxAC)=l*d
,其中x
是向量AB和AC的叉积。此外,乘积的符号可以指示圆心是朝内还是朝外。 - Oliv