Это для приложения для iPad, но по сути это математический вопрос.
Мне нужно нарисовать дугу окружности с различной (монотонно увеличивающейся )шириной линии. В начале кривой она будет иметь начальную толщину (, скажем, 2 pts ), а затем толщина будет плавно увеличиваться до конца дуги, где она будет иметь наибольшую толщину (, скажем, 12 pts ).
Я полагаю, что лучший способ сделать это — создать UIBezierPath и заполнить форму. Моя первая попытка состояла в том, чтобы использовать две дуги окружности (со смещенными центрами ), и это работало нормально до 90°, но дуга часто будет между 90° и 180°, так что такой подход не будет резать.
Мой текущий подход состоит в том, чтобы сделать небольшую спираль (, одну слегка растущую из дуги окружности, а другую слегка сужающуюся ), используя квадратные или кубические кривые Безье. Вопрос в том, где мне разместить контрольные точки , чтобы отклонение от дуги окружности (, также известное как «толщина» формы ), было значением, которое я хочу.
Ограничения:
Я открыт и для других решений.