サイクロイドのアニメーションを作る。
参考:サイクロイド - Wikipedia
用いる式
プログラム
半径1の円が1回転するまでの様子を描画する。
theta=var('theta') r=1 ts = [2*pi*(i+1)/30 for i in range(30)]
時刻 t における「サイクロイド」「回転する円」「円の中心とサイクロイドを結ぶベクトル」の3つを描画する。
frames = [arrow((r*t,r),(r*(t-sin(t)),r*(1-cos(t)))) +circle((r*t,r),radius=r) +parametric_plot((r*(theta-sin(theta)),r*(1-cos(theta))),(theta,0,t)) for t in ts]
作成したフレームをanimate関数に渡し、gifファイルとして保存する。
animate(frames,xmin=-0.5,xmax=2*pi+0.5,ymin=-0.5,ymax=2.5).gif(savefile="cycloid.gif")
実行結果