Avast 那里的程序员同胞!
我有以下问题:
我有两个重叠的矩形,如下图所示。
我想找出由点 ABCDEF 组成的多边形。
替代圣诞节描述:红色饼干切割器正在切掉一点黑色饼干。我想计算黑色饼干。
每个矩形是一个具有 4 个二维顶点的数据结构。
实现这一目标的最佳算法是什么?
坐标有多精确?如果矩形相当小,最简单的方法可能是在画布上绘制它们,首先是黑色矩形,然后是红色。画布上剩余的黑色像素是剩下的多边形。
另一种方法是根据矩形的所有边将坐标网格拆分为一堆矩形(不计算无界矩形,如果您有两个原始矩形,则最多生成 9 个矩形)。然后只需测试每个矩形中的一个代表点是否属于特定多边形,以确定哪些矩形在其中,哪些在外面。
我在这里找到了一些我可能会用到的东西:
http://www.cgal.org/Manual/3.3/doc_html/cgal_manual/Boolean_set_operations_2/Chapter_main.html
在发布这个问题之前,我实际上已经下载了 CGAL 源代码,但我想我会仔细研究一下。