怎麼用Mathematica製作動態圖片?

Mathematica有一個非常強大的功能,就是生成可以互動的內容,甚至可以到處幀數很大的動態圖。

下面,就用幾個例子,簡單的講一下這個問題。

怎麼用Mathematica製作動態圖片

工具/原料

電腦

Mathematica(8.0以上版本)

一些簡單的例子

把一組圖片變成一個動態圖

程式碼是:

Export["abcd.gif",{圖片a,圖片b,圖片c,圖片d}]

其中,Export是輸出檔案的命令函式;abcd.gif是要輸出的檔案的名稱和格式,要用""包圍起來;後面的{}是一個列表。

這段程式碼的意思就是,把列表裡的圖片a、圖片b、圖片c、圖片d按順序匯出為一個gif檔案。

要注意的是,要把圖片直接複製到相應的位置上,讓圖片成為程式碼的一部分。

怎麼用Mathematica製作動態圖片

怎麼用Mathematica製作動態圖片

怎麼用Mathematica製作動態圖片

怎麼用Mathematica製作動態圖片

怎麼用Mathematica製作動態圖片

匯出的檔案在哪裡呢?這個好像因人而異。我的電腦上的匯出檔案是在“文件”資料夾裡。如果你的電腦不是這樣,可以慢慢找,也可以全盤搜尋"abcd.gif"。

怎麼用Mathematica製作動態圖片

怎麼用Mathematica製作動態圖片

怎麼用Mathematica製作動態圖片

Mathematica可以繪製函式的圖形,也可以繪製函式的動態圖。

程式碼是:

Animate[Plot[Sin[x + a], {x, 0, 10}], {a, 0, 5}]

Animate是生成動畫的命令,x是自變數,a是動畫引數。

執行以後,用滑鼠點開關,影象就會自己動起來;用左鍵拖動滑塊,就實現了人機互動。自己實施去吧。

怎麼用Mathematica製作動態圖片

上面並不是動態圖,因為你的電腦資料夾裡面沒有這個東西(還沒匯出來)。

怎麼匯出?當然還是用Export,程式碼如下:

Export["sinx.gif", Table[Plot[Sin[x + a], {x, 0, 10}], {a, 0, 5}]]

出來的結果如圖:

怎麼用Mathematica製作動態圖片

怎麼用Mathematica製作動態圖片

三焦點曲線

在《怎麼用Mathematica處理多焦點曲線》裡面,作者提到了多焦點曲線的概念。

下面把三焦點曲線匯出為動態圖。

先建立一個圖的列表,一幀一幀的影象,都在這個列表裡。

Table[ContourPlot[

Sqrt[(x - 1)^2 + (y - 1)^2] + Sqrt[(x - 0)^2 + (y - 0)^2] + Sqrt[

x^2 + (y - 1)^2] == a, {x, -5, 5}, {y, -5, 5}], {a, 1.8, 10, 0.1}]

然後用Export:

Export["三焦點曲線.gif",

Table[ContourPlot[

Sqrt[(x - 1)^2 + (y - 1)^2] + Sqrt[(x - 0)^2 + (y - 0)^2] + Sqrt[

x^2 + (y - 1)^2] == a, {x, -5, 5}, {y, -5, 5}], {a, 1.8, 10,

0.1}]]

2 怎麼用Mathematica處理多焦點曲線

怎麼用Mathematica製作動態圖片

怎麼用Mathematica製作動態圖片

雙擺的模擬

雙擺和單擺比起來,就複雜的太多了。它的運動狀態,看起來非常的混亂。下面,就用Mathematica模擬一下它的運動。

它的運動,由四個函式根據不同的初始狀態所確定。這四個函式設為p1[t]、p2[t]、θ1[t]、θ2[t],它們滿足一個微分方程組(見圖)。

程式碼如下圖。

怎麼用Mathematica製作動態圖片

怎麼用Mathematica製作動態圖片

怎麼用Mathematica製作動態圖片

注意事項

寫程式碼,有助於你熟悉鍵盤,提高打字速度。所以,儘量不要複製粘帖。

把上面的程式碼直接複製到Mathematica裡,居然有的不能執行。很奇怪!所以,你如果想實驗的話,儘量自己寫吧。

第六步程式碼有點長,所以截圖了。

問題, 圖片, 動態, 動態圖,
相關問題答案