Ios 计算UIBezierPath自定义形状的面积大小

Ios 计算UIBezierPath自定义形状的面积大小,ios,objective-c,math,geometry,Ios,Objective C,Math,Geometry,我有这样的UibezierPaths: 我想计算这种自定义形状的面积大小。对于目标c中的这种复杂形状,我不知道如何进行这种计算。我在这里找到了适用于Android的内容,但没有找到适用于iOS的类似内容: 我不需要一个有效的解决方案,只要有办法的话,我需要一个想法或者一些伪代码来解决这个问题 谢谢 如果区域被贝塞尔曲线(包括直线)包围,则可以利用参数曲线的格林定理()来查找区域面积。只需计算每个轮廓曲线的积分值: A = Integral[t=0..1] (y(t)*x'(t)*dt) 对

我有这样的UibezierPaths:

我想计算这种自定义形状的面积大小。对于目标c中的这种复杂形状,我不知道如何进行这种计算。我在这里找到了适用于Android的内容,但没有找到适用于iOS的类似内容:

我不需要一个有效的解决方案,只要有办法的话,我需要一个想法或者一些伪代码来解决这个问题


谢谢

如果区域被贝塞尔曲线(包括直线)包围,则可以利用参数曲线的格林定理()来查找区域面积。只需计算每个轮廓曲线的积分值:

 A = Integral[t=0..1] (y(t)*x'(t)*dt)
对于由控制点p[]定义的三次Bezier曲线:

 A = Integral[0..1](y(t)*x'(t)*dt)=
     Integral[0..1](
            (P[0].Y*(1-t)^3+3*P[1].Y*t*(1-t)^2+3*P[2].Y*t^2*(1-t)+P[3].Y*t^3)*
            (P[0].X*(1-t)^3+3*P[1].X*t*(1-t)^2+3*P[2].X*t^2*(1-t)+P[3].X*t^3)' * dt)
我们必须展开括号,区分第二行表达式,乘法表达式,并对结果进行积分。结果公式相当大,但易于实现。Maple致力于推导公式:


你能详细说明这个答案吗?也许可以给出一个如何实现的快速示例。@smnk变量如
P0Y
对应于
P[0]。Y
-Y-三次贝塞尔曲线第一个控制点的分量。所以,图中显示了几乎可以随时使用的代码块(可以“手动”简化-例如,有一些重复的术语)