代码之家  ›  专栏  ›  技术社区  ›  Fabio Ceconello

有没有一个有效的算法来生成一个二维凹面船体?

  •  59
  • Fabio Ceconello  · 技术社区  · 16 年前

    从一个GIS文件(一个城市地图)中得到一组(2d)点,我需要生成一个多边形,它为地图(它的边界)定义了“轮廓”。它的输入参数是设置的点和“最大边缘长度”。然后它将输出相应的(可能是非凸的)多边形。

    到目前为止,我找到的最佳解决方案是生成Delaunay三角形,然后移除比最大边长的外部边。当所有的外缘都短于此之后,我只需去掉内缘,得到我想要的多边形。问题是,这非常耗时,我想知道是否有更好的方法。

    10 回复  |  直到 16 年前
        1
  •  2
  •   Amirali    10 年前
        4
  •  2
  •   monnoo    13 年前
        5
  •  1
  •   Mike F    16 年前

    H01 = bearing from P0 to P1
    H12 = bearing from P1 to P2
    A = fmod( H12-H01+360, 360 )
    |P2-P1| <= MaxEdgeLength
    

    P0 <- P1
    P1 <- P2
    

        6
  •  1
  •   mattdm    12 年前
        9
  •  0
  •   Martin Beckett    16 年前