2017-01-18 59 views
0

我UIBezierPathes這樣的:計算面積UIBezierPath自定義形狀的尺寸

Shapes

我要計算這樣的自定義形狀的面積大小。我沒有任何想法來管理目標c中這些複雜形狀的計算。我在這裏找到了一些Android的東西,但沒有發現類似的iOS的東西:Click

我不需要一個工作解決方案,只需要一個想法或一些僞代碼來解決這個問題,如果有辦法。

謝謝!

回答

0

如果您的地區被貝塞爾曲線包圍(包括直線),那麼您可以利用格林定理的參數曲線(formula 10 here)來查找區域的面積。對於三次Bezier曲線

A = Integral[t=0..1] (y(t)*x'(t)*dt) 

,通過控制點P []中定義:只是輪廓的每一個曲線計算的積分值

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) 

我們必須展開支架,區分第二行表達,乘以表達式並整合結果。所得到的公式相當大,但易於實施。楓葉派生公式:

enter image description here