我正在寻找将复杂多边形(自相交多边形)转换为简单的凸多边形。
----------------------------- - - - - - - - - - - - - - - - - - - - - - - - - - ----------------------
上面的图片应该会产生两个多边形(三角形)。
我正在使用boost库并使用boost库寻找解决方案。
答案 0 :(得分:0)
让我们假设您的初始多边形是...... xa,xb,....,xc,xd,....(其中xi是顶点),边xa,xb和xc,xd相交。然后你有两个多边形:.... xa,xe,xd,...和xe,xb,...,xd。
现在如果两个多边形相交,它们必须在两个地方(甚至是多个地方)相交。如果两个多边形.... xa,xb,... xc,xd,....和... xe,xf,...... xg,xh,...相交于(xa,xb)(xe ,xf)和(xc,xd)(xg,xh)你有两组新的多边形,有两个新的顶点xi和xj(我会让你弄清楚这些多边形的确切性质)。
然后有算法来计算相交的线段对的列表。
将这三个部分组合在一起就可以获得算法。