1

将矩形/正方形分割成更小的区域并强制每个子区域的最大面积非常容易。您可以将该区域划分为边长为 sqrt(max_area) 的区域,并小心处理剩余部分。

但是,对于四边形,我很难过。假设我不知道任何角落的角度。我们还假设所有四个点都在同一平面上。此外,我不需要小区域的大小都相同。我唯一的要求是每个单独区域的面积小于最大面积。

我可以使用特定的数据结构来简化此操作吗?
有没有我找不到的算法?

我可以使用四叉树来做到这一点吗?我对树木并不是非常精通,但我确实知道如何实现这种结构。

当我这样做时,我会考虑 GIS 工作,但我相当有信心这不会影响分割四边形的算法。

4

2 回答 2

1

您可以递归地将四边形在长边上一分为二,直到得到的区域足够小。

于 2012-06-27T00:49:39.273 回答
1

如果你的四边形是凸的,那么实际上你可以把它分成两个面积相等的部分,同时具有相等的周长!这称为公平分区,并在The Open Problems Project中进行了描述(它对更多的部分开放,但解决了两部分)。

对于非凸四边形,不难找到一条线将其分成两个相等的部分。
我相信这会奏效:将一条线穿过一个反射顶点,然后围绕该顶点旋转它,直到它平均划分该区域。如果您的唯一目标是将区域分成相等的两半,则相同的方法适用于凸多边形。

通用问题(对于任意多边形)称为“多边形的火腿三明治切片”。事实上,我写了一篇具有确切标题的论文。

于 2012-06-27T12:21:00.700 回答