Я создаю множество уморфных UIBezierPath. Мне нужно рассчитать ширину и высоту UIBezierPath. Как я могу это сделать?
Рассчитать ширину и высоту UIBezierPath?
Ответы (3)
Вы можете получить высоту с помощью следующей строки кода.
myPath.bounds.size.height;
А по ширине...
myPath.bounds.size.width;
person
Tanner Silva
schedule
18.08.2012
Но имейте в виду, что
bounds
— это ограничивающая рамка, включая все контрольные точки. Если вам нужна ограничивающая рамка real, вам нужно вычислить минимум/максимум всех кубических кривых Безье пути Безье.
- person Martin R; 18.08.2012
@MartinR, можешь подробнее объяснить? Верна ли ваша точка зрения, даже если я не использую контрольные точки явно? добавляет ли iOS их, когда я использую простые методы пути? И я был бы признателен, если бы вы могли добавить больше данных. И спасибо Таннер
- person shannoga; 18.08.2012
UIBezierPath
всегда состоит из последовательности кубических кривых Безье, и @BartoszCiechanowski дал ссылку с информацией по этой теме.
- person Martin R; 18.08.2012
@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