#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
Комментариев нет:
Отправить комментарий