歩いたら休め

なんでこんな模様をしているのですか?

【Rust】Rustで数値計算プロジェクトを試す その2

前回のあらすじ: 「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のようなライブラリが無いか」も探しています。

github.com

ただ、内部でPythonを呼び出してるライブラリが多く、「普段pipenv(pyenv + venv)の仮想環境使ってるけど、その呼び出しするときにけっこう詰まりそうだな」って思ってしまっています。