Вас ждут передовые разработки, идеально отрисованные кубические пути, ну прямо как в Stroke из WPF исходный код которого недоступен, наслаждайтесь)))
Смещение кривых или увеличение толщины линии кривой, это отдельная головная боль, которая решена мной, путем поиска углов разворота в утолщенных кривых и делением исходной кривой, после чего похожим алгоритмом эта кривая делится окончательно и соединяются поделенные фрагмены, которых может быть гораздо больше чем шесть частей с двумя разворотами) Никакие математические формулы для этого не подходят, только и исключительно деление кривых и их сравнение, поэтому в алгоритмах нет излишней математики кроме сверх необходимой)