【发布时间】:2020-04-08 13:25:51
【问题描述】:
我们的目标是找到从正交多边形的各个方面(北、西、东、南)获得的所有矩形。但是,我无法进一步了解具体实现。
这就是我到目前为止所做的。
首先:我有一个坐标列表(在 XML 文件中),我想将它们读入 Java 以确定多边形的点和边缘。
所以现在来解决我的主要问题。我想找到位于这个多边形内的所有矩形, [![多边形]从四面八方(北、东、南、西)开始。这一步我有问题。我突然想到使用 SweepLine 算法,但我不确定如何实现它以获得所需的结果(来自各个方面的重叠矩形)。为此,我画了这些照片以澄清我的意思。如果您来自多边形的北边,您会发现绿色矩形。 [![多边形中来自北边的矩形] 如果您来自多边形的西边,您会发现红色矩形。 [来自西边的多边形中的矩形] 和重叠的矩形.. [绿色和红色矩形重叠] 但是,我不确定如何以最简单的方式做到这一点。我研究了很多扫线算法,但我不确定如何实现它以及这是否是一种有效的方法。我的目标是找到这些矩形并以适当的方式保存它们,以便我可以将它们用于进一步的步骤(例如,在多边形中找到许多矩形重叠的位置)
也许有人可以帮助我。将不胜感激!
【问题讨论】:
-
你只想数一数吗?它们是否允许重叠?如果是这样,您可以从所有向内指向的角到多边形的下一个边缘画线。然后您可以计算这些线切割另一条线的次数,并将其添加到原始多边形的其他角的数量中。然后将其除以 4,我认为应该是这样。
-
谢谢。但是,光是数是不够的,我其实还需要找一个容器来保存……
标签: java