Страницы

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

суббота, 11 апреля 2020 г.

Как превратить нарисованную от руки линию в красивый график?

#графика #математика

                    
Для своего диплома я хочу сделать компонент (если не получится, то фиг с ним:), который
при рисовании линии (я использую WPF InkCanvas) превращал бы эту линую в график. Ну
то есть выпрямлял посильнее. Не силен в математике, поэтому не знаю, что мне нужно
использовать для этого. В качестве входных данных имеется набор точек. Что можно применить?
    


Ответы

Ответ 1



Для этих целей уже есть готовый алгоритм Рамера-Дугласа-Пекера Он вроде применяется в векторных графических редакторах и картографии. И еще список алгоритмов делающих тоже самое: Visvalingam–Whyatt algorithm Reumann–Witkam algorithm Opheim simplification algorithm Lang simplification algorithm Затем полученную ломанную можно превратить в красивую кривую каким-нибудь алгоритмом интерполяции или использовать точки как опорные для построения кривых Безье.

Ответ 2



Решение в лоб: взять крайние точки исходной линии, найти равно распределенные точки "изломов". Получаем промежутки-условия. Потом для каждого такого промежутка ищем точки, которые в него попадают и находим простейшее среднеарифметическое значение для X и для Y. Получим усредненные значения на участках, соединим их точками - тот же график, но менее детализированный. Больше точек - больше изломов - картинка ближе к графику.

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

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