求获取一个任意多边形与矩形相交部分的算法,不要用CombineRgn。

解决方案 »

  1.   

    很久前做过三维建模方面的,就是由基本的点数据来构建模型,其中涉及到模型的布尔运算,就是三维模型的交、并、减的问题。很复杂繁琐,大概思路是用一个多边形A的遍历另一多边形B的所有的点,判断点与该多边形的关系比如在多边形内、外、上这些关系,具体算法可以参考计算机图形学,若相交即可求出交点,然后与前面的点即可构成相交的边,遍历完后可求出一方的相交部分;然后用多边形B遍历多边形A的所有点,和上面的步骤一样,最后结合两次遍历得到的相交部分即是最终的相交部分。
    实现起来就是几个for循环和点与多边形的位置关系和两条边求交点的算法,在求交、并、减部分所得的边不同,但很为繁琐。