はじめに
クロソイド曲線をsympyとmatplotlibのFuncAnimationで表示する方法について説明する。
解説
モジュールのインポート
バージョン
Sympyで積分を計算
始点の座標を原点とすると、クロソイド曲線の座標は以下の式で表される。
\[{\left\{
\begin{array}{}
x(t) = \int_0^t cos (\frac{θ^2}{2})dθ\\
y(t) = \int_0^t sin (\frac{θ^2}{2})dθ
\end{array}
\right.\\
}\]
この式をsympyのintegrateで解くと以下のようになる。
座標データの生成
np.arange(-4*np.pi, 4*np.pi, 0.05)で角度を変化させて、各角度における座標を得られた式で求めていく。求めた座標はリストへ追加していく。
クロソイド曲線の表示
アニメーションで表示
clo, = ax.plot(xx[0], yy[0],"C5-")
でプロットを作成し、clo.set_data()により、データを更新していくことでアニメーションとする。
参考
クロソイド曲線 - Wikipedia
Integrals - SymPy 1.13.3 documentation
【Python】高速道路のIC/JCTは本当にクロソイド曲線状に建設されているのか?検証してみた - Qiita
はじめにこの記事は、趣味で宇宙開発を行う団体「リーマンサット・プロジェクト」の新春アドベントカレンダーです。私は当団体にて、月面探査などの用途に使用するローバーのソフトウェア開発を担当しています。…
scipy.special.gamma — SciPy v1.14.1 Manual
フレネル積分 - Wikipedia
コメント