【问题标题】:Slice polygon into n-pieces将多边形切成 n 块
【发布时间】:2015-07-08 16:51:01
【问题描述】:

我正在研究多边形切片算法,并找到了将多边形切片为 n 部分的解决方案。 问题是我只知道需要切割多边形的线,这些线来自 voronoi 图。

是否有任何现有的算法通过在需要切割的地方将多边形切割成 n 部分?

这是一张图片来展示我已经拥有的东西:

蓝色多边形需要在红线处被切开以获得(在这种情况下)7 个较小的多边形。

知道如何以最有效的方式解决这个问题吗?

【问题讨论】:

  • 尝试使用SqlGeometry,它是 intersect 方法。你必须参考Microsoft.SqlServer.Types

标签: c# .net geometry polygon partitioning


【解决方案1】:

您可以使用例如Clipper library 来查找多边形与 Voronoi 图的每个单元格的交点。

AFAIK,它允许针对开放的 voronoi 单元(折线)裁剪多边形

编辑 快速检查后:库只能通过闭合多边形剪切折线,返回多边形内部的部分折线。它找不到多边形的一部分,被折线切割(当然这是模棱两可的操作)。 所以需要有界的 voronoi 图。

【讨论】:

  • 看起来不错。所以最好得到一个有界 voronoi 图来做对吗?然后我必须寻找一个首先给我一个有界 voronoi 的库。谢谢你的回答
  • 可能不会。我没有使用过这个功能,但是文档提到了多边形与开放路径(折线)的交点。
  • 哦,太棒了!谢谢,我明天试试=)
  • 好吧,我刚刚看到它只适用于整数点......我需要双倍
  • clipper.cs 中有typedef std::vector< IntPoint > Path;
猜你喜欢
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
相关资源
最近更新 更多