【发布时间】:2011-02-05 09:11:24
【问题描述】:
我需要找到一种算法来确定正方形和矩形之间的关系。它必须能够确定:
- 正方形完全在矩形内
- 正方形部分位于矩形内部(重叠)
- 正方形的角只接触矩形的角
- 正方形的边在矩形的边上
以下是帮助我们为每种情况提取数学公式的输入(给定值):
- 正方形中心的x坐标=squareX
- 正方形中心的y坐标=squareY
- 正方形的宽度 = squareW
- 矩形中心的x坐标=recX
- 矩形中心的y坐标=recY
- 矩形的宽度 = recW
- 矩形的长度 = recL
P.S:矩形的大小总是大于正方形的宽度。
一旦我们可以使用数学运算提取算法,我将用 Java 编写代码。
编辑:
对于接触角的情况,这是我写的代码,它可以工作(Math.abs 表示绝对值):
((Math.abs(Math.abs(recX-squareX)-(recW+squareW)/2))<=0.001) && ((Math.abs(Math.abs(recY-squareY)-(recL+squareW)/2))<=0.001)
【问题讨论】:
-
请贴出你目前写的代码。人们通常不喜欢只为您编写代码。事实上,这是一个工作描述,而不是一个问题。
-
x 和 y 是如何精确定义的(左上角,中心,...)?
-
你尝试过这个问题吗?
-
是的,我确实尝试过,并且我能够做到角落的情况。请检查帖子,我已编辑。但我仍然需要算法的其余部分的帮助。
-
@lweller,我在帖子中解决了这个问题。所有坐标均指形状的中心。