math - 一种简单的多边形相交算法

标签 math geometry 2d polygon

我正在寻找一种非常简单的算法来计算多边形交集/裁剪。 也就是说,给定多边形 PQ,我希望找到包含在 P 和中的多边形 T Q,我希望 T 在所有可能的多边形中最大。

我不介意运行时间(我有一些非常小的多边形),我还可以得到多边形相交的近似值(即,点较少的多边形,但仍包含在多边形的交点)。

但对我来说非常重要的是,算法应该简单(测试成本更低)并且最好简短(代码更少)。

编辑:请注意,我希望获得一个代表交叉点的多边形。对于两个多边形是否相交的问题,我不需要仅 bool 答案。

最佳答案

我知道原始发帖者正在寻找一个简单的解决方案,但不幸的是确实没有简单的解决方案。

尽管如此,我最近创建了一个开源免费软件剪切库(用 Delphi、C++ 和 C# 编写),它可以剪切所有类型的多边形(包括自相交的多边形)。这个库使用起来非常简单:https://github.com/AngusJohnson/Clipper2

关于math - 一种简单的多边形相交算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2272179/

相关文章:

c - 任何给定正整数的必要二进制数字的数量是否真的是 ceil(log_2 n)?

javascript - 如何将 svg 圆定位在一条直线上并形成曲线?

algorithm - 确定算法,用于计算线段从圆的内部到外部交叉的圆与圆相交的点

c++ - 关联矩阵 C++ 太大

algorithm - 简单的二维多边形三角剖分

algorithm - 二维光栅图像视线算法

数学和编程

haskell - 是否有一个标准的 Haskell 函数可以进行数值裁剪?

algorithm - 合并图像中的一组矩形的最佳方法是什么?

java - 确定线段和圆弧的所有组合之间的交点