Simplification d'une courbe de Bézier
Bonjour,
Travaillant sur les courbes de Bézier je voulais demander si quelqu'un avait déjà traité ce sujet s'il y avait un moyen sûr de simplifier une succession (multitude) de points afin d'obtenir la courbe de Bézier la plus fidèle à la courbe apparente des points initiaux.
Pour le moment j'ai une multitude de points continus formant une courbe quelconque.
J'ai d'abord appliqué Douglas-Peucker pour éliminer les points sortant d'une certaine limite.
Mais il en reste encore pas mal et je ne sais pas trop quels points conserver pour appliquer mes équations qui détermineront les paramètres de contrôle de la courbe de Bézier.
Faut-il conserver uniquement les points d'inflexion? Mais en zoomant les points on peut dire qu'il y en a beaucoup aussi.
En bref je ne parviens pas à déterminer le seuil de tolérance entre un point qui peut être éliminé ou pas.
Merci à vous.
BB
Simplification d'une courbe de Bézier
Une variante plus rapide, trouvée ce matin: le procédé de régression, s'il porte sur deux suites complètes de polynômes de Bernstein - par exemple:
x = a*(1 - t)3 + 3*b*t*(1 - t)2 + 3*c*t2*(1 - t) + d*t3 ,
y = a'*(1 - t)3 + 3*b'*t*(1 - t)2 + 3*c'*t2*(1 - t) + d'*t3 ,
- conduit directement aux coordonnées des points de contrôle, ici les quatre points (P0(a, a') , P1(b, b') ... P3(d, d')) de la courbe du troisième ordre.
D'autres participants, rompus à l'utilisation des bibliothèques de fonctions :D, devraient pouvoir t'indiquer où trouver le logiciel effectuant le travail - il existe probablement, car la méthode décrite n'a rien d'original.
Elle relève du procédé plus général de régression sur quatre fonctions élémentaires (gi(t)) qui ne présentent entre elles aucun rapport constant:
z = a*g1(t) + b*g2(t) + c*g3(t) + d*g4(t) .
D'ailleurs ne faudrait-il pas poser la question sur le forum "Statistiques et Data Mining" ?
Simplification d'une courbe de Bézier
Alors, bon courage ! :D
En relisant les messages précédents, je reste toujours aussi perplexe: quel est l'aspect du nuage des points ? Le graphe médian (pour autant qu'on puisse le définir) est-il une courbe fermée ? Présente-t-il des points d'inflexion, ou une discontinuité des tangentes en certains points ?
Autant de question auxquelles l'observation de l'image permettrait de répondre, et à partir de laquelle peut-être le choix d'un procédé deviendrait possible ...
j'ai peut-etre une solution
regarde le chapitre "lissage d'un polygone" dans ce Pdf :
Pièce jointe 611805
c'est une approche de lissage de pts par une courbe de bezier.
en espérant que cela te sera utile
A+
lissage de points par une courbe de bezier
Bonjour
suivez le lien ci dessous et vous trouverez la solutions programmée avec une EDI Free Pascal.
Je pense que la conversion en une EDI moderne ne vous poseras pas de problemes, et si quelqu'un le fait en Lazarus je serais curieux de voir le résultat.:mouarf::mouarf:
https://www.developpez.net/forums/bl...points-donnes/