该算法计算出每一个多边形环(部分)的面积。如果为顺时针方向环(外环),该面积为正值,如果是逆时针环(内环),面积就为负值。 采用部分梯形面积求和的方法,各参数如下, partialSums[0] - double型矩阵 cPoints - 多边形环中点的个数 points - 点矩阵, 属性包括X,Y坐标 yOrigin - 最后一个点(cpoints-1)Y坐标的两倍值 第一个梯形的面积是:partialSums[0] = (points[1].x - points[cPoints-1].x) * (points[0].y - yOrigin) 接下来从下标1开始:for j = 1 to j < cPoints-1 partialSums[j] = (points[j+1].x - points[j-1].x) * (points[j].y - yOrigin) 如果多边形含有非线状的部分,比如圆弧,椭圆弧或者贝塞尔曲线,则会对每个梯形进行面积纠正。 环的最终面积为: SUM(PartialSums)/2 多边形的最终面积为: SUM(每个环的面积) 下面是计算多边形(正方形环)的一个例子: X0 = 0 ; Y0 = 0 X1 = 0 ; Y1 = 10 X2 = 10 ; Y2 = 10 X3 = 10 ; Y3 = 0 X4 = 0 ; Y4 = 0 partialSums(0) = (X0 - X4) * (Y0 - Y4) = (0 - 0) * (0 - 0) = 0 partialSums(1) = (X2 - X0) * (Y1 - Y4) = (10 - 0) * (10 - 0) = 100 partialSums(2) = (X3 - X1) * (Y2 - Y4) = (10 - 0) * (10 - 0) = 100 partialSums(3) = (X4 - X2) * (Y3 - Y4) = (0 - 10) * (0 - 0) = 0 因为所有边都是直线,所以无需进行纠正。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。