要件
点列 にフィットする2次ベジェ曲線群を求めたいとします。
点列の数 は3以上であるとします。
Canvas上(描画可能な領域)でマウスを動かして、それに追随して線を描画するようなときに使えるアルゴリズムです。
なんか、かなり限定的な局面と思われますが、要は点が多数(数百程度)あり、
点をそのまま線分で結ぶとカクカクした線分群になるのでそれを避けようというアルゴリズムです。
2次ベジェ曲線上の点を とし、その制御点を おくと以下のようになります。
このベジェ曲線を複数使って点列にフィットさせます。
アルゴリズム
点列から新たな点列 を作成します。
番目の2次ベジェ曲線を とし、その制御点を とします。
制御点を以下のように定めます。
式 より、求めるべき は以下のようになります。
よって、求める2次ベジェ曲線群は となります。
プログラムによる描画
後で画像をここに貼り付けます。
補足
求める2次ベジェ曲線群は点群の点を(基本的に)通らないことに注意してください。