前回のあらすじ: 「Rustで数値計算(二重振り子)して結果をアニメーションで表示したい!」と思っています。クソ記事量産してる感もあるんですが、以前チュートリアルをしていて「どこまで自分が分かっていて、どこから先分かってないのか分からない」みたいな状況になってしまったので振り返りのために書いてます。
簡単なトイケースとして「サインカーブをプロットする」のを目標にコードを書いています。ひとまずこんなの書けました。
fn main() { let mut curve = vec![]; for i in 0..100 { curve.push((i as f64).sin()); } println!("{:?}", curve); }
ちょっと詰まったのが、 int
のままでは sin()
が呼び出せず、 float
型にキャストする必要があってその方法くらいですね。このあたりはC++の反省を活かして、型変換を明示する仕様に作り上げてるんだと勝手に思ってます。
あと、不要なライブラリをインポートしないイメージがあるんですが、 #include <math.h>
みたいなこと書かなくてもいいってことは、余計なものをロードしない仕組みもありそうな雰囲気してます(雰囲気で話してます)。
「Rustにmatplotlibのようなライブラリが無いか」も探しています。
ただ、内部でPythonを呼び出してるライブラリが多く、「普段pipenv(pyenv + venv)の仮想環境使ってるけど、その呼び出しするときにけっこう詰まりそうだな」って思ってしまっています。