openframeworksで自分の手入力した曲線の多項近似式を算出してくれる。
Visual Studio 2015
openframeworks 0.9.8
です。
hatenaブログに公開できないので、こっちで公開してURL飛ばそう。投稿できるはずなんだけど。まぁいっか。 pic.twitter.com/MvVQL0gX20
— ツタンラーメン (@hungrykirby) 2017年1月17日
こんな感じに自分でこんな感じの曲線がほしいなと思ったときに、書いてみると近似曲線が得られます(すごく需要のない…)。現状は2~9次曲線までです。いや普通に20次とかもできるっちゃできるんですが、確か21次くらいでdouble型の上限を越えます。
左上の数字(小さいが…)が最高次数です。ちなみにx、yともに0~1です。プログラム上は(0, 0)で始まって(1, 1)で終わるようになあっていますが、もちろんそうじゃないようにもできます。
かなり独力で頑張ろうとしたのですが、普通に無理だったので
www.mk-mode.com
こちらを参考にしました。最小二乗法を解くのに、ガウスジョルダン法なんてあるんですね、知らなかった。
こういう風に絵が簡単に描けて、C++の強みも活かせるopenframeworksはすごく便利ですね。
ちなみにこのソースコードはgithubにあるっちゃあるんですが、その…次数をfor文で回そうとした痕跡がかなりあって…気持ち悪いコードに…。
GitHub - hungrykirby/curveFitting
一応載せておきます。誰も見ないとは思いますが。ちなみに個人利用用だったので一切例外処理をしていません。エラーが出たら起動し直します。