怎麼將 Mathematica 的動態輸出成 GIF?
02-05
我寫了一個 Mathematica 的程序,是關於視向速度曲線隨不同參數的變化,想將其輸出為 GIF 文件(或其他類型文件)插入 PPT 中,方便以後做報告時用。
其實不知道這裡面怎麼算也沒有關係,重點是怎麼將 Manipulate 的內容輸出成 GIF這裡將源碼貼出來Module[{time, K, M, E, f},
time = Range[1000]; Manipulate[ K = 28.4*P^(-1/3.)*Mpsini*Ms^(-2/3.); M = 2 [Pi]/(P*365.25)*(# - tp) /@ time; E = E /. (FindRoot[E - e Sin[E] == #, {E, #}] /@ M); f = 2 ArcTan[Sqrt[(1 + e)/(1 - e)] Tan[#/2]] /@ E; ListPlot[ Thread[{time, K/Sqrt[1 - e^2] (Cos[f + [Omega]] + e Cos[[Omega]])}],Joined -&> True, ImageSize -&> {800, 600}, PlotRange -&> All,
Frame -&> True, PlotStyle -&> {Thick, Blue}, GridLines -&> Automatic, GridLinesStyle -&> Dashed, FrameLabel -&> (Style[#, Italic, 24] /@ {"Time(day)", "Radial Velocities(m/s)"}), FrameTicksStyle -&> Directive[Black, 15], PlotLabel -&> Style["Time series of the Radial Velocities", "Subtitle", Black]],{{e, 0.1, Style["Eccentricity", 12]}, 0, 0.9},
{{[Omega], [Pi]/4., Style["Argument of periapsis", 12]}, 0, 2 [Pi]}, {{tp, 30, Style["The time of passing periapsis", 12]}, 0, 300, 30}, {{P, 1, Style["Planet orbit Period(year)", 12]}, 0.5, 3}, {{Mpsini, 1, Style["!(*SubscriptBox[(M), (planet)])*sin[i](Jupiter mass)", 12]}, 0.1, 3}, {{Ms, 1, Style["!(*SubscriptBox[(M), (star)])(Sun mass)", 12]},0.5, 3}
] ]
如果Manipulate只有一個參量
1.把Manipulate改成Table(這裡默認輸出的是圖片的列表,也就是Manipulate的操作對象是作圖,如Plot什麼的)
2.然後給個分號在最後(我相信一般情況下不願它輸出結果)
3.給這個列表命名吧,比如T
4.Export["fig.gif",T],結果在用戶文件夾里(默認路徑)參考這篇博客:Mathematica描繪滾球某個點的運動軌跡(圓滾線)
http://www.fkr13.org/index.php/2015/04/29/mathematicaflash/
推薦閱讀:
※為什麼mathematica的語法和lisp很近?
※計算機中的符號運算是怎麼實現的?
※為什麼Mathematica的DSolve函數會解不出顯式解??
※已知若干個點的坐標(0<x<L, 0<y<L), 如何高效地找出所有相對距離小於r的點對?
※請問總的來說 Mathematica 好些還是 Matlab 好些?
TAG:WolframMathematica |