? ? ? ? ? 高考在即,筆者想為孩子以后能夠快樂學(xué)習(xí)數(shù)學(xué)、學(xué)習(xí)編程找到一個(gè)比較合適的項(xiàng)目,經(jīng)過一番比較發(fā)現(xiàn)github上的萬星項(xiàng)目manim(https://github.com/3b1b/manim)就非常好。它能夠快速構(gòu)建有關(guān)數(shù)學(xué)的動(dòng)畫,而且非常精確形象。
? ? ? ? ? ?安裝Manim
? ? ?雖然manim已經(jīng)支持Python3.7的,不過安裝起來還是比較麻煩,我在ubantu18.04上直接使用安裝的過程如下:
? ? 1.首先嘗試直接使用pip install manimlib命令安裝,但是會(huì)有以下報(bào)錯(cuò)
Cannot uninstall 'pycairo'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
? 2.pip安裝失敗后使用git命令安裝
sudo apt install sox ffmpeg libcairo2 libcairo2-dev
sudo apt install texlive-full
git clone https://github.com/3b1b/manim
cd manim
pip install -r requirement.txt
這里還是會(huì)報(bào)錯(cuò),使用gedit requirement.txt將pycairo兩行去掉,再執(zhí)行pip install -r requirement.txt命令。
3.單獨(dú)安裝pycairo
使用以下命令強(qiáng)制升級(jí)就可以了。
sudo pip install pycairo --upgrade --ignore-installed pycairo
4.安裝manim
確保在manim的目錄下執(zhí)行
python setup.py install
?即可完成安裝了。
? ? ? ? windows下安裝manim實(shí)在太痛苦了,得把c的編譯環(huán)境,git for windows等等通通裝一遍,不建議嘗試,如果執(zhí)意不想放棄windows請(qǐng)考慮在ubantu虛擬機(jī)裝manim
? ? ?體驗(yàn)Manim
? ? ? ?1.運(yùn)行例程
? ? ? ?使用以下命令就可以看到本文開頭的動(dòng)畫了
python extract_scene.py example_scenes.py SquareToCircle -pl
? ? ?2.manim例程概述?
? ? ?打開manim目錄下的example_scenes.py找到“class SquareToCircle”一段,這也就是我們剛剛生成動(dòng)圖的代碼具體如下:
class SquareToCircle(Scene):
def construct(self):
circle = Circle()#定義圓
square = Square()#定義方形
square.flip(RIGHT)#放置正確位置
square.rotate(-3 * TAU / 8)#逆時(shí)針旋轉(zhuǎn)3/8pi
circle.set_fill(PINK, opacity=0.5)#背景定為粉色,不透明度0.5
self.play(ShowCreation(square))#顯示方形
self.play(Transform(square, circle))#由方變圓
self.play(FadeOut(square))#圓形淡出
? ? ? ? 其中第1、2行circle = Circle()和?square = Square()其實(shí)就是定義圓形和正方形兩個(gè)物體,后面使用在第3行調(diào)用flip()函數(shù)將正方形放到正確的位置上。然后調(diào)用第4行調(diào)用rotate()函數(shù),在逆時(shí)針方向旋轉(zhuǎn)3/8pi的角度。第5行調(diào)用set_fill()將圓形的填充顏色設(shè)置為粉紅色,不透明度設(shè)置為0.5,具體也可以參考我上面的注釋。以上這些參數(shù)都可以自行修改設(shè)置,改好之后再調(diào)用
python extract_scene.py example_scenes.py SquareToCircle -pl
?就能重新生成好新的圖像。?當(dāng)然這只是manim的最簡單入門的用法,也可以定義許多其它的方法,比如這個(gè)
? ? ?不可否認(rèn)manim的確是數(shù)學(xué)展示動(dòng)畫制作的神器,建議當(dāng)爸爸的程序員們趕快學(xué)起來吧,培養(yǎng)孩子對(duì)幾何的興趣效果還不錯(cuò)。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
