折れ線をなめらかにつなぐアルゴリズム
3次b-スプラインを完全に理解した続編→ スプライン曲線で遊ぶサイト
Canvas でお絵かきアプリ に関連して、、、
折れ線をなめらかにしたいので、それをするアルゴリズムに関するリサーチ
Catmull-Rom スプライン
簡単そう
実装してみた
https://gyazo.com/d1f49a1ad632956ffbeba7bedaabafb3
まだ若干カクカク感ありませんか?
これは導関数が滑らかじゃないからです。
この実装、パスに点が追加される度に全パスについてスプライン計算してるからカスだな。ちゃんとしなさい。
参考になる https://zenn.dev/mushe/articles/92c65e0c8023aa
というかほぼそのまま書いた…
多項式の値を計算するときちゃんと Horner でやりました、えらい
↑のZennの記事では $ -1, 0, 1, 2 で計算してるけど、ここのとりかたはいろいろあるらしい
https://en.wikipedia.org/wiki/Centripetal_Catmull–Rom_spline
B-Spline
むずそう、、、
https://ja.wikipedia.org/wiki/B-スプライン曲線
ウィキペディアの式そのまま実装してみたけどなんかたまに変になる https://clutter.ikuta.me/b-spline/
これ単純に t の分解能がしょぼいからか?いやわからん…
https://gyazo.com/b6aa4acd69d371797ae38cecd4e6c752
NURBS
もっとむずそう、、、
お絵かきアプリにはオーバーキルだろ