Les algorithmes donnés approximent les courbes de Bézier, or, ici, seules des Bézier cubiques (ordre 3) sont utilisées, l'approximation est donc superflue, puisqu'on peut calculer aisément, à tout paramètre t, le point P(t)=[x,y] correspondant.
La difficulté est que pour trouver l'abscisse curviligne exacte, il faudrait intégrer la racine des carrées la fonction paramétrique dérivée de la courbe de Bézier... Et on aboutit à des fonctions elliptiques qui ont peu de chances d'être implémentées en PHP.
En d'autres mots, l'abscisse curviligne, seule méthode mathématique exacte pour répartir des points régulièrement le long de la courbe, n'est pas calculable sur une Bézier cubique, et donc, il faudra se contenter de l'approximation donnée par getPointAtLength() ou réaliser une interpolation (en approximant la Bézier par une ligne brisée).
La difficulté est que pour trouver l'abscisse curviligne exacte, il faudrait intégrer la racine des carrées la fonction paramétrique dérivée de la courbe de Bézier... Et on aboutit à des fonctions elliptiques qui ont peu de chances d'être implémentées en PHP.
En d'autres mots, l'abscisse curviligne, seule méthode mathématique exacte pour répartir des points régulièrement le long de la courbe, n'est pas calculable sur une Bézier cubique, et donc, il faudra se contenter de l'approximation donnée par getPointAtLength() ou réaliser une interpolation (en approximant la Bézier par une ligne brisée).