2017-01-18 9 views
0

У меня есть UIBezierPathes так:Вычислить площадь Размер UIBezierPath Нестандартные формы

Shapes

И я хочу, чтобы вычислить размер области этого вида пользовательских форм. У меня нет никакой идеи управлять этим вычислением для этих сложных фигур в Objective c. Я нашел здесь что-то для Android, но не нашел что-то похожее для iOS: Click

Мне не нужно рабочее решение, просто нужна идея или какой-нибудь псевдокод, чтобы решить эту проблему, если есть способ.

Спасибо!

ответ

0

Если вы окружены кривыми Безье (включая прямые линии), то вы можете использовать теорему Грина для параметрических кривых (formula 10 here), чтобы найти область области. Просто вычислить значение интеграла для каждой кривой контура:

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

 Смежные вопросы

  • Нет связанных вопросов^_^