Как нарисовать UIBezierPath переменной ширины?

Мне интересно, как мне нарисовать uibezierpath, где ширина штриха достигает максимума в центре дуги. Вот пример того, что я имею в виду:

Кривая

Либо я должен пройти через каждую точку при рисовании и соответственно установить ширину штриха, либо есть более простой способ. Может кто-то указать мне верное направление?

Спасибо


person spiralstairs    schedule 30.09.2011    source источник
comment
Как вы этого добиваетесь? Не могли бы вы поделиться своим кодом?   -  person Hardik Shekhat    schedule 20.05.2016


Ответы (2)


Вы можете просто нарисовать два внешних пути без обводки, соединить их, а затем заполнить пространство между ними.

person sosborn    schedule 30.09.2011

Другой способ попробовать это, если вам интересно:

В итоге я заставил это работать, создав цикл для рисования пары сотен сегментов линии и соответствующим образом изменив ширину линии во время цикла рисования.

Для настройки ширины линии я использовал следующую функцию: MAX_WIDTH * sinf(M_PI * (i/NUMBER_OF_SEGMENTS)

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

person spiralstairs    schedule 04.03.2012