【发布时间】:2011-12-20 21:01:01
【问题描述】:
我遇到了完成我的申请所需的这个数学问题,所以我寻求帮助。
给定 2 个(或更多,但基本上是 2 个)矩形,每个矩形有 2 个已知点:Top-left(x1, y1) 和 Bottom-right(x2, y2)(如果需要解决问题,我可以通过这些信息找到长度)。
TL(x1, y1)
+-----------------+
| |
| | TL(x3, y3)
| | +---------------------------+
+-----------------+ | |
BR(x2, y2) +---------------------------+
BR(x4, y4)
有没有办法确定它们是否有交集,在面积上,我的意思是,这个矩形的任何部分是否位于另一个矩形的任何部分上?
我搜索了一下,找到了一点帮助,但是并没有解决问题:
两个矩形不相交有四种情况:
一个矩形的左边缘在另一个矩形的右边缘的右侧,表示第一个矩形完全放在第二个矩形的右侧,没有交集。
一个矩形的右边缘在另一个矩形的左边缘的左侧,意味着第一个矩形完全放在第二个矩形的左侧,没有交集。
一个矩形的上边缘在另一个矩形的下边缘之下,表示第一个矩形完全位于第二个矩形之下,没有相交。
一个矩形的下边缘在另一个矩形的上边缘之上,意味着第一个矩形完全位于第二个矩形之上,没有相交。
所以我试图颠倒条件,即如果上述 4 个不发生,矩形可能相交。但是我仍然可以找到两个矩形不满足任何条件并且仍然不相交的条件(如上图)。
非常感谢任何帮助,请告诉我如何做或算法或代码(仅限 JS 和 PHP)。
非常感谢!
[x]
【问题讨论】:
-
图表满足条件2。
-
这看起来正是您所需要的:stackoverflow.com/questions/115426/…
-
@IgnacioVazquez-Abrams:谢谢伙计,现在我注意到了。
-
@nickb:我读过那篇文章,但真的不知道它是关于什么的>。
-
@nnnnnn:我的错,非常感谢你,现在我知道我可以使用该理论应用于我的代码。再次感谢你。 [x]
标签: php javascript algorithm math intersection