Fit-Curveはスプラインであり、実際にはベジェ曲線ではありません。ただし、ベジェ曲線をスプラインのように見せることはできます(スプラインにはコントロールポイントがありません)。私はこの問題について多くのことを検索し、複雑すぎるアルゴリズムを自分自身に導入/実装しましたが、最終的に、タスクが思ったよりもはるかに簡単であることがわかりました(私はそうしなければならないと感じました、誓います:))
これがその最も良い説明です、私はこの記事からの抜粋を取ります:
ほとんどの実装では、ベジェ曲線描画関数は2つの制御点と1つの点自体(セグメントの場合)を引数として取るため、必要なのは新しいセグメントの制御点を繰り返し見つけることだけです(最後のセグメントを更新するのが最善だと思います。すべての新しいポイントの曲線の終わりに新しいものを描画します):
ここにJavaScriptコードがあります(t
最も単純な場合は、曲線が一定の滑らかさです)。
function getControlPoints(x0,y0,x1,y1,x2,y2,t){
var d01=Math.sqrt(Math.pow(x1-x0,2)+Math.pow(y1-y0,2));
var d12=Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y2-y1,2));
var fa=t*d01/(d01+d12);
var fb=t*d12/(d01+d12);
var p1x=x1-fa*(x2-x0);
var p1y=y1-fa*(y2-y0);
var p2x=x1+fb*(x2-x0);
var p2y=y1+fb*(y2-y0);
return [p1x,p1y,p2x,p2y];
}
必ず記事を読んで理解してください。これが最良で、最短で、最も明確な記事だと思います。