У меня есть список (x, y)
баллов. Я знаю, как составить список кривых Безье, которые проходят через все эти точки и имеют непрерывную первую (и вторую, хотя и менее важную) производную. Однако список, который я составил, слишком длинный. Я бы предпочел приблизиться к имеющимся у меня точкам, если это позволит мне сократить количество имеющихся у меня кривых. Я хотел бы иметь возможность передать параметр либо насколько близкое приближение я получаю, либо максимальное количество кривых, предпочтительно первое.
Причина, по которой я хочу этого, заключается в том, что конечный результат будет иметь графический пользовательский интерфейс, в котором пользователи могут редактировать кривые Безье, и не критично, чтобы кривые проходили точно через каждую точку, если они находятся близко. Чем больше кривых, тем труднее редактировать.
РЕДАКТИРОВАТЬ: Еще немного информации о цели этого. Я пытаюсь сделать программу для редактирования изображений. Когда кто-то загружает растровое изображение, я хочу иметь возможность отследить центральную линию. Potrace - это то, что я бы использовал для обводки контура формы, но он не работает для обводки штрихов. Мне удалось определить множество точек вдоль центральной линии, и я хочу превратить эти данные в список связанных кривых Безье. Причина, по которой я не хочу создавать сплайн Безье, заключается в том, что будет слишком много контрольных точек, чтобы их было легко редактировать. «Слишком много» - это непростой термин, но я хотел бы иметь возможность передавать параметр, ограничивающий количество кривых. Либо функция, которая минимизирует расстояние между кривыми от точек на основе максимального количества кривых, либо функция, которая минимизирует количество кривых на основе максимального отклонения от точек.