Еще один способ попробовать это, если вам интересно:
Я закончил тем, что заставил это работать, создав цикл для рисования пары сотен отрезков и изменив ширину линии во время цикла рисования.
Для настройки ширины линии я использовал следующую функцию: MAX_WIDTH * sinf (M_PI * (i / NUMBER_OF_SEGMENTS)
Выглядит отлично, и никаких проблем с производительностью, насколько я могу судить. Сработало особенно хорошо, потому что у меня уже был список точек, которые можно использовать на кривой. В других случаях я думаю, что было бы лучше использовать метод Сосборна.