3次Bスプラインの近似

Bスプラインの実用的なソースは以下の2つ
http://www5d.biglobe.ne.jp/~stssk/maze/spline.html
http://d.hatena.ne.jp/suzume_r/20090801


普通は3次式の係数を求めるために全点郡での行列式を解くのだけれど、制御点の数が増えればそれだけ初期化の時間と係数の分のメモリを取ってしまう。
さらに制御点を移動させようと思うとまた最初から連立方程式を解かなきゃいけなくなってしまう。制御点少ないならまだいいけど。

久しぶりにP5で実装してみた。
Proce55ingがいつの間にかBetaが取れて普通の1.0になってたのに驚いたw



http://takamatsu.cool.ne.jp/tattyu/p55/BSpline

P5アプレット上では全然見えないけど黒い点が毎回計算しなおしたもの。


実際に再初期化してみるとわかるが、大きく影響する制御点はせいぜい前後3点ずつなのでそこだけ解きなおすようにしてみた。
水色の点がそう。ぱっと見る限り概ね問題はないっぽい。


だったら制御点全部から行列式を作ったり係数を保持しなくても、毎回欲しい位置の前後3点を解くのでもある程度近似できんじゃねーのと思って試してみたのが白い点。


ちなみに精度とか気にしないんであれば前後2点程度でも十分使い物になるみたいだね。