如何计算一个多边形可以放入多少个多边形?


9

我通常使用qgis。我用一个例子解释我的问题:有一片森林(不规则的geometry1)和一棵树(geomery2)。我想知道森林可以容纳的最大树木数量。此外,我想要这些文件在森林中的最佳配置的shapefile输出。在此处输入图片说明


3
很好的问题....
WKT

我什至不知道该如何开始。听起来像是Maters学位问题/算法。
HeikkiVesanto '16

2
如果您可以访问ArcGIS的免费试用版(或免费下载R),则地理空间建​​模环境软件gencirclesinpolys (Generate Circles In Polygons)将提供有用的工具。
约瑟夫

2
您正在寻找一个工具来解决包装问题,但我不知道有任何的QGIS
幽暗地域

1
@Joseph我使用了地理空间建​​模环境工具,它可以正常工作。不幸的是,该工具会在多边形边界内生成规则的圆形(或六边形)排列,这意味着输出形状不会(不必要)显示要素的最佳布置,我想表示的是最大数量。
ksatzu '16

Answers:


5

在线尝试该应用svgnest.com/

步骤:1. svg创建一个文件(如图1所示);2.转到链接并上传svg;3.用鼠标选择容器多边形;4.开始

经过多次迭代后,您可以锁定并下载svg文件(参见图2)。

注意:多边形和圆形必须在同一文件svg中

图1

图2


4

有趣的问题!

我对不规则的多边形也做了类似的事情(在这种情况下,建筑物被打包成不重叠的形状)

在此处输入图片说明

使用了postgresql和postgis,以及python。原“粗略算法”为

  • 在多边形的边界框中找到随机点(ST_Envelope)
  • 如果指向多边形之外,请返回一步
  • 为以该随机点为中心的树创建几何
  • 如果与任何现有的放置树重叠(ST_Overlaps),请返回开始
  • 在点添加树
  • 回去开始

我不能保证这会给出全局最优值,为此您需要一个“圆形填充”算法(就像其他人提到的那样)。

它会永远持续下去,因此您需要输入一些代码来决定何时退出,例如

  • 当放置的树木的总面积是多边形面积的一定百分比时
  • 当需要多于N次迭代才能找到不重叠的树。

根据Wikipedia 上的Circle Packing,六边形网格可实现最佳包装密度。使用MMQGIS可以创建这样的网格,其间距基于您的树的大小,我认为它们是相同的。然后在每个顶点上放置一棵树。但是,接下来的问题是知道将网格放置在何处以最大程度地增加树木数量。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.