【问题标题】:Interpolate a polygon between two polygons在两个多边形之间插入一个多边形
【发布时间】:2020-07-03 00:03:52
【问题描述】:

我想在两个多边形(一个包含在另一个多边形内)之间插入一个多边形。现在我正在使用一种非常繁琐的方式来做到这一点,我想问问是否有人有任何其他想法或建议我可以调查以实现这一目标。

现在我要做的是:

  1. 将多边形投影到栅格(矩阵)中,并将值 0 分配给内周边所在的栅格像元,并将值 1 分配给外周边所在的栅格单元。
  2. 在栅格中的每个像元处插入值(我使用反距离算法)
  3. 在栅格上使用 Polygonizer 函数以获取介于 0 和 1 之间的给定值的周长

目前我不使用任何库来执行这些步骤,但如果有必要,我可以使用 Nettopologysuite、GDAL、Arcgis-runtime 之类的东西。谢谢。

多边形是 2D 的,代表地形的等值线(具有相同高度的等高线)。所以我基本上在 100m 和 1000m 处有一个山区等值线,我想通过插值其他两个来计算 300m 处的等值线。

【问题讨论】:

  • 2D,3D,ND ?任何样本输入?通常的方法是对多边形之间的顶点进行配对(如果不匹配,则使用重采样来匹配),然后进行线性插值......参见这个非常相似的 QA:How can I connect two parallel 2d polygons to create a seamless 3d mesh?
  • 感谢您的链接。它的二维。我正在使用地形等值线(具有相同高度的等高线),并且我想在两个已知等值线之间生成预期的等值线。例如,我在 100 米和 500 米处有一座山的等值线,我想在高度 300 处插入等值线。使用最近的点是行不通的,因为外周边的许多点都不最接近任何内部顶点。
  • 你也有表面三角测量吗?这应该会简化很多...

标签: algorithm interpolation polygon


【解决方案1】:

尚不完全清楚您的插值多边形需要满足什么条件。

它应该有多少个顶点,与原来的内部多边形相同,还是其他一些?

多边形是凸的吗?

我会尝试什么:

对于内部多边形的每个顶点:

找到最接近外多边形的边。

找到从内部多边形的中心到顶点的线

沿这条线移动顶点,使其与多边形外边的距离减半。

【讨论】:

  • 谢谢,多边形不需要是凸的,插值后的多边形可以有任意数量的顶点(例如,最多是其他多边形顶点总数的几倍)。我认为使用多边形之间最近的线或内部多边形的质心来链接内部/外部点,并在该线上进行插值,在许多情况下也不起作用。谢谢
猜你喜欢
  • 1970-01-01
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-28
  • 1970-01-01
相关资源
最近更新 更多