如何计算有机形状的面积?

时间:2013-08-10 20:54:58

标签: ios shapes area

我想知道它有可能计算出有机形状的面积。我试图计算的形状看起来像这样:

想象一下它由CGPoints

绘制

这有特殊功能吗?我想的可能是CoreImage或Quartz或者也许是opengl。

1 个答案:

答案 0 :(得分:1)

如果边界路径仅由直线段组成且不相交 然后你就可以使用了 以下公式计算封闭区域的面积(来自https://en.wikipedia.org/wiki/Polygon#Area_and_centroid):

CGPoint points[N]; 

CGFloat area = 0;
for (int i = 0; i < N; i++) {
    area += (points[i].x * points[(i+1) % N].y - points[(i+1) % N].x * points[i].y)/2.0;
}

其中points[0], ... , points[N-1]是逆时针顺序的线段的起点。

对于更复杂的路径段(如Bézier曲线),您可以细分每个段 分成可以通过线段近似的小部分。