はじめに
クロソイド曲線を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)で角度を変化させて、各角度における座標を得られた式で求めていく。求めた座標はリストへ追加していく。
クロソイド曲線の表示
![](https://sabopy.com/wp/wp-content/uploads/2021/03/clothoid-1.png)
アニメーションで表示
clo, = ax.plot(xx[0], yy[0],"C5-")
でプロットを作成し、clo.set_data()により、データを更新していくことでアニメーションとする。
参考
![](https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Clothoid_curve.svg/640px-Clothoid_curve.svg.png)
クロソイド曲線 - Wikipedia
Integrals - SymPy 1.13.0 documentation
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUUzJTgwJTkwUHl0aG9uJUUzJTgwJTkxJUU5JUFCJTk4JUU5JTgwJTlGJUU5JTgxJTkzJUU4JUI3JUFGJUUzJTgxJUFFSUMlMkZKQ1QlRTMlODElQUYlRTYlOUMlQUMlRTUlQkQlOTMlRTMlODElQUIlRTMlODIlQUYlRTMlODMlQUQlRTMlODIlQkQlRTMlODIlQTQlRTMlODMlODklRTYlOUIlQjIlRTclQjclOUElRTclOEElQjYlRTMlODElQUIlRTUlQkIlQkElRTglQTglQUQlRTMlODElOTUlRTMlODIlOEMlRTMlODElQTYlRTMlODElODQlRTMlODIlOEIlRTMlODElQUUlRTMlODElOEIlRUYlQkMlOUYlRTYlQTQlOUMlRTglQTglQkMlRTMlODElOTclRTMlODElQTYlRTMlODElQkYlRTMlODElOUYmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTY3ZjExNDA0MDhkMWRiODFiMGEzYWU4OTYzNzA0ZGQ0&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBGdW1pbm9yaV9Tb3VtYSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NDVlMDhkNWE0ZWEwMWIxM2NmYmRlYmU0ODBkODNiMmQ&blend-x=142&blend-y=436&blend-mode=normal&txt64=aW4g44Oq44O844Oe44Oz44K144OD44OI44O744OX44Ot44K444Kn44Kv44OI&txt-width=770&txt-clip=end%2Cellipsis&txt-color=%23212121&txt-font=Hiragino%20Sans%20W6&txt-size=36&txt-x=156&txt-y=536&s=c78708b13edc4301d13f16deabc20c8b)
【Python】高速道路のIC/JCTは本当にクロソイド曲線状に建設されているのか?検証してみた - Qiita
はじめにこの記事は、趣味で宇宙開発を行う団体「リーマンサット・プロジェクト」の新春アドベントカレンダーです。私は当団体にて、月面探査などの用途に使用するローバーのソフトウェア開発を担当しています。…
scipy.special.gamma — SciPy v1.14.0 Manual
![](https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Fresnel_Integrals_%28Unnormalised%29.svg/640px-Fresnel_Integrals_%28Unnormalised%29.svg.png)
フレネル積分 - Wikipedia
コメント