使用Python快樂學(xué)數(shù)學(xué)Github萬星神器Manim簡介
高考在即,筆者想為孩子以后能夠快樂學(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)制升級就可以了。
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請考慮在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)孩子對幾何的興趣效果還不錯(cuò)。
總結(jié)
以上所述是小編給大家介紹的使用Python快樂學(xué)數(shù)學(xué)Github萬星神器Manim簡介,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Python實(shí)現(xiàn)Selenium自動(dòng)化Page模式
這篇文章主要介紹了Python實(shí)現(xiàn)Selenium自動(dòng)化Page模式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07如何使用Selenium實(shí)現(xiàn)簡單的網(wǎng)絡(luò)自動(dòng)化操作指南
Selenium是一個(gè)用于Web應(yīng)用測試的工具,Selenium測試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣,這篇文章主要給大家介紹了關(guān)于如何使用Selenium實(shí)現(xiàn)簡單的網(wǎng)絡(luò)自動(dòng)化操作的相關(guān)資料,需要的朋友可以參考下2024-03-03python接口自動(dòng)化之正則用例參數(shù)化的示例詳解
這篇文章主要介紹了python接口自動(dòng)化之正則用例參數(shù)化,它是一個(gè)特殊的字符序列,它能幫助你方便的檢查一個(gè)字符串是否與某種模式匹配,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07Django實(shí)現(xiàn)學(xué)員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Django實(shí)現(xiàn)學(xué)員管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02python讀csv文件時(shí)指定行為表頭或無表頭的方法
這篇文章主要介紹了python讀csv文件時(shí)指定行為表頭或無表頭的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06