Рисование кривой через набор из N точек, где N> 2

Мне нужно провести плавную кривую через N точек с N> 2 с помощью Javascript. В настоящее время я использую bezierCurveTo () в объекте холста html5. Я потратил много времени на то, чтобы попытаться найти лучший метод для этого, и, хотя сплайны Катмулла-Рома звучат многообещающе, я не знаю, как рисовать их в виде линий. Поэтому у меня остались кривые Безье из ломаных линий, и мне нужно найти все промежуточные контрольные точки.

Мне потребовалось много повторного изучения математики, но у меня есть частично рабочий пример здесь . Линия иногда бывает не очень гладкой, и есть проблема с тем, что мои контрольные точки не работают для определенных векторов. Здесь мой начальный вопрос math.stackexchange , который я попросил получить большую часть математики для контрольных точек.

Я также был бы открыт для сплайнов Катмулла-Рома, но мне понадобятся некоторые Помогите, как преобразовать их в линии на холсте. Я нашел этот ресурс, но снова теряюсь, применяя его для своих нужд.

Вот изображение, созданное из приведенного выше примера, иллюстрирующее, как реплицировать плохие контрольные точки:

enter image description here

Большое спасибо за любую помощь!

6
задан Community 13 April 2017 в 12:19
поделиться