c# - 将多边形切成 n block

标签 c# .net geometry polygon partitioning

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

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

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

Polygon (Blue), to be sliced at red lines

蓝色多边形需要在红线处进行切片以获得(在本例中)7 个较小的多边形。

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

最佳答案

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

AFAIK,它允许根据开放的 voronoi 单元(折线)剪切多边形 enter image description here

编辑 快速检查后:库只能通过闭合多边形剪切折线,返回多边形内部的部分折线。它无法找到由折线切割的多边形的一部分(当然,这是不明确的操作)。 因此需要有界 voronoi 图。

关于c# - 将多边形切成 n block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31298877/

相关文章:

c# - 类访问器级别 - 如何使这成为可能?

algorithm - 计算两组点之间的最小距离的最快算法是什么?

c# - .Net 中的内存泄漏

c# - Linq 获取指定的 child 和他们的 parent

c# - 单一责任原则和存储库

c# - DataGridView keydown 事件在 C# 中不起作用

c# - Gmap.Net 标记在不正确的位置,但本地图缩放时,标记会转到正确的位置

c# - 确保长时间运行的任务只触发一次,后续请求排队但队列中只有一个条目

python - 如何测试Python中一条线是否与任意数量的其他未知线相交?

c - C 中的 OpenCV - 绘制一个应该只出现在图像上半部分的圆圈?