Aprés avoir téléchargé le fichier split-bezier de André Michelle, j'ai aperçu dans le code une fonction du nom de casteljau ... c'est suffisant pour que je recherche à quoi correspond ce nom. :)

L'algorithme de Casteljeau permet de trouver un point faisant partie d'une courbe de Bezier en fonction de ses point de controles, à un pourcentage donné. Il s'agit d'utiliser ce ratio pour obtenir un point situé sur le segment entre un point de contrôle et le point suivant, pour obtenir une série de points de longueur égale au nombre de points de contrôles moins un. La recursivité est utilisée jusqu'à ce que l'on obtienne un seul et unique point. Le point obtenu est situé sur la courbe.

Je me suis donc empressé d'implémenter cet algorithme en Flash, et ca donne un début de classe Bezier, avec pour l'instant une méthode statique casteljau, qui prend en paramètre un ratio, et une liste de coordonnées et retourne un objet avec des coordonnées, et une methode listCasteljau qui retourne un tableau des différentes étapes (dont je me sert pour le SWF ci-dessous). Au fur et à mesure de mes trouvailles, je compléterai cette classe ... ;)

Et en plus d'être interessant, je trouve ca joli ! :P






Mais trouver les points successifs n'est pas suffisant pour pouvoir dessiner la courbe ... Je suis alors tombé sur l'article de Thimothee Groleau sur la tranformation d'un courbe cubique (quatre points de contrôle) en une courbe quadatrique (trois points de contrôle) : http://www.timotheegroleau.com/Flash/articles/cubic_bezier/cubic_bezier_in_flash.htm. Je ne l'ai pas encore étudié a fond, mais je vais voir s'il est possible de le généraliser à un nombre n de points de contrôles ...

::Télécharger Bezier.zip::