我想知道它有可能计算出有机形状的面积。我试图计算的形状看起来像这样:
想象一下它由CGPoints
这有特殊功能吗?我想的可能是CoreImage或Quartz或者也许是opengl。
答案 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曲线),您可以细分每个段 分成可以通过线段近似的小部分。