我正在寻找一种非常简单的算法来计算多边形交集/裁剪。
也就是说,给定多边形 P
、Q
,我希望找到包含在 P
和中的多边形 T
Q
,我希望 T
在所有可能的多边形中最大。
我不介意运行时间(我有一些非常小的多边形),我还可以得到多边形相交的近似值(即,点较少的多边形,但仍包含在多边形的交点)。
但对我来说非常重要的是,算法应该简单(测试成本更低)并且最好简短(代码更少)。
编辑:请注意,我希望获得一个代表交叉点的多边形。对于两个多边形是否相交的问题,我不需要仅 bool 答案。
最佳答案
我知道原始发帖者正在寻找一个简单的解决方案,但不幸的是确实没有简单的解决方案。
尽管如此,我最近创建了一个开源免费软件剪切库(用 Delphi、C++ 和 C# 编写),它可以剪切所有类型的多边形(包括自相交的多边形)。这个库使用起来非常简单:https://github.com/AngusJohnson/Clipper2
关于math - 一种简单的多边形相交算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2272179/