Страницы

Поиск по вопросам

воскресенье, 15 декабря 2019 г.

Как интерполировать полилинию в кривую

#cpp #математика #библиотеки


Подскажите, пожалуйста, библиотеку?
Обязательно сохранить исходные точки. Поясню, что дана именно 2D-полилиния, а не
мат. функция. То есть, координата X последующей точки может быть меньше координаты
X предыдущей точки.
Примерный интерфейс: на входе вектор с точками, точность(сколько соседних точек участвуют
в расчетах); на выходе новый, "сглаженный" вектор.
Знает ли кто-нибудь такие библиотеки (желательно попроще) или функции?    


Ответы

Ответ 1



Ранее пытался применить метод Лагранжа для функции, найденный здесь. Но у него особенность: при большом кол-ве точек, появляется сильная амплитуда. Не подошло. Есть похожее решение для сплайновой интерполяции? При любой интерполяции при большом количестве точек будут "биения". Чтобы сгладить надо использовать аппроксимацию либо методом наименьших квадратов с заданным порядком полинома (пусть того же Лагранжа или Чебышева) или применить метод Безье

Ответ 2



Ничто не мешает провернуть сплайновую интерполяцию для отдельных фрагментов полилинии - для метода spline interpolation нет ограничения на то, чтобы кривая была функцией. В качестве доп. пищи для размышлений - гугл "smoothen polyline" и вот эти статьи: http://www.cs.ait.ac.th/~guha/papers/simpliPoly.pdf http://cipic.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/Chaikins-Algorithm.html

Комментариев нет:

Отправить комментарий