J'ai une liste de (x, y)
points. Je sais comment faire une liste de courbes de Bézier qui traversent tous ces points et qui ont un premier dérivé continu (et second, bien que moins important). Cependant, la liste avec laquelle je me retrouve est beaucoup trop longue. Je préférerais approximer les points que j'ai si cela me permet de réduire le nombre de courbes que j'ai. Je voudrais pouvoir passer un paramètre de la proximité d'une approximation ou d'un nombre maximum de courbes, de préférence les premières. La raison pour laquelle je veux ceci est que le résultat final aura une interface graphique où les utilisateurs peuvent éditer les courbes de Bézier, et il n'est pas critique que les courbes traversent exactement chaque point, tant qu'elles sont proches. Plus de courbes rend plus difficile à éditer.Approximativement une liste de points avec une courte liste de courbes de Bézier
EDIT: Plus d'informations sur le but de cette. J'essaie de faire un logiciel de retouche d'image. Quand quelqu'un charge un bitmap, je veux être capable de tracer une ligne centrale. Potrace est ce que je voudrais utiliser pour tracer le contour d'une forme, mais cela ne fonctionnera pas pour tracer des traits. J'ai pu identifier beaucoup de points le long de la ligne centrale, et je veux transformer ces données en une liste de courbes de Bézier connectées. La raison pour laquelle je ne veux pas faire une spline de Bézier est qu'il y aura trop de points de contrôle pour que cela soit facile à éditer. "Trop" n'est pas un terme facile à définir, mais j'aimerais pouvoir passer un paramètre pour limiter le nombre de courbes. Soit une fonction qui minimise la distance entre les courbes et les points en fonction d'un nombre maximal de courbes, soit une fonction qui minimise le nombre de courbes en fonction d'un écart maximal par rapport aux points.
[L'algorithme de Ramer-Douglas-Peuker] (https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm) semble être une bonne solution. –
Faut-il séparer les courbes de Bézier? Sinon, vous recherchez simplement un ajustement spline. –
C'est une question assez vaste - avez-vous des détails concrets sur ce que vous faites? Que représente la liste? Pourquoi avez-vous besoin de courbes de Bézier, spécifiquement? Que signifie "trop long"? Si les points peuvent être des approximations, quel aspect d'entre eux est important de préserver? etc etc –