Рассчитать ширину и высоту UIBezierPath?

Я создаю множество уморфных UIBezierPath. Мне нужно рассчитать ширину и высоту UIBezierPath. Как я могу это сделать?


person shannoga    schedule 18.08.2012    source источник


Ответы (3)


Вы можете получить высоту с помощью следующей строки кода.

myPath.bounds.size.height;

А по ширине...

myPath.bounds.size.width;
person Tanner Silva    schedule 18.08.2012
comment
Но имейте в виду, что bounds — это ограничивающая рамка, включая все контрольные точки. Если вам нужна ограничивающая рамка real, вам нужно вычислить минимум/максимум всех кубических кривых Безье пути Безье. - person Martin R; 18.08.2012
comment
@MartinR, можешь подробнее объяснить? Верна ли ваша точка зрения, даже если я не использую контрольные точки явно? добавляет ли iOS их, когда я использую простые методы пути? И я был бы признателен, если бы вы могли добавить больше данных. И спасибо Таннер - person shannoga; 18.08.2012
comment
UIBezierPath всегда состоит из последовательности кубических кривых Безье, и @BartoszCiechanowski дал ссылку с информацией по этой теме. - person Martin R; 18.08.2012
comment
@TannerSilva: ваши примеры изображений неверны. Кривая Безье всегда лежит в выпуклой оболочке контрольных точек. Поэтому кривая всегда лежит внутри прямоугольника myPath.bounds. Прямоугольник myPath.bounds может быть больше, чем реальная ограничивающая рамка, но не меньше. - person Martin R; 18.08.2012

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

person Bartosz Ciechanowski    schedule 18.08.2012

в быстром 4:

myPath.cgPath.boundingBox.width
myPath.cgPath.boundingBox.height
person lbsweek    schedule 29.03.2018