如何将矩形划分为相同大小的部分,每个部分连接到周边?

时间:2015-01-07 15:30:32

标签: algorithm geometry

我在map reduce设置中做了Viewshed算法,并且考虑到了一个非常可靠的算法(http://www.geoinfo.info/proceedings_geoinfo2013.split/paper9.pdf),为了使它工作我需要在以下算法的行中有一些东西我现在解释一下:

输入:所需区域的数量 N ,栅格(只是矩阵) R ,以及栅格/矩阵中的点 P

输出: N 区域,其中每个区域是一个多边形(三角形或四角形多边形),其中一个角位于 P ,其他角连接到 R 的周长。

让我举个例子:

输出可能是这样的,其中 P 位于中心: *P* is in the centre

显然 P 不需要在中心。

有人知道任何好的算法吗?

1 个答案:

答案 0 :(得分:1)

通用算法可以是这样的:

  • 找到每个N个多边形的面积(显然它是R的面积除以N)
  • 从P到左上角创建垂直线段
  • 将此段作为新多边形的第一条边沿着R边界顺时针移动,给定小步长并计算新多边形的面积
  • 如果区域接近每个多边形的区域,则创建它
  • 使用最后一条边作为新多边形的第一条边并重复。

如果您需要完美的精度,您还可以计算新点的确切位置,因为您拥有所有必要的数据。这些多边形中的每一个都是凸的,并且可以细分为多个三角形。

在下面的插图中,希望它有所帮助:enter image description here