常用的幾個函式和操作
**import big_ol_pile_of_manim_imports import * ** 從 big_ol_pile_of_manim_imports.py 中匯入了需要用到的模組
class Hello_World(Scene) 建立一個繼承自Scene的一個類;
def construct(self) construct方法對於manim很特殊,manim呼叫這個方法來建立動畫。所以基本上這個方法是在執行manim時必不可少的;
x=TextMobject("語句",color=顏色) 建立一個物件,內容為“語句”,顏色為“顏色”
self.play(Write(name) 輸出 name 物件的內容
self.wait(x) 等待 x 秒
x=Rectangle(color=顏色) 建立一個矩形,顏色為“顏色”
x.surround(y) 物件 x 包裹物件 y
x=VGroup(a,b) 合併 a,b 到一個群組中
x.scale() 設定大小
x.set_color 設定顏色
x.set_height 設定尺寸
self.play(FadeIn(x)) 讓 x 物件漸入顯示
self.play(FadeOut(x)) 讓 x 物件漸出
self.play(Transform(x,y)) 從 x 到 y
self.ApplyMethod(x.屬性,number)) ,把 x 的某個屬性放大 number 倍,x 可以是一個群組
x=Circle() /Annulus()/Ellipse()/Square()/Triangle()/Polygon()/Line() 圓 圓環 橢圓 方形 三角形 多邊形 線
屬性:color fill_color fill_opacity height width 顏色 內部填充顏色 不透明度 高度 寬度
或用 x.set_xxxx
self.add(x) 物件 x 直接出現
self.play(GrowFromCenter(x)) 讓 x 物件從中間一步步生成
self.play(FadeInFromDown(x)) 讓 x 物件從下面漸入
self.play(FadeInFrom(x,vector)) 讓 x 物件從 vector 方向漸入
x=Line([x1,y1,c1],[x2,y2,c2]) 一條起點 (x1,y1) ,終點 (x2,y2)
x=Annulus(inner_radius,outer_radius) 內半徑,外半徑
x.shift() 接受一個向量,圖形初始位置的平移,其中可以填 DOWN,LEFT,RIGHT,UP 常量
DOWN 等價於 np.array([0,-1,0])
單位長度 一個預設的圓(Circle)其半徑為一個單位,預設的動畫場景高度為8個單位
B.next_to(A,vecor) 物體 B 在 vector (eg ,np.array([1,2,0]),UP) 定義方向上挨著 A
B.rotate(degree) 讓B旋轉 degree(弧度制)
self.play(ApplyMethod(A.shift, vector)) 直接使用shift等方式改變的位置是沒有動畫的,如果要動畫的話可以使用這個來實現A以向量vector進行移動的動畫
x.to_edge(UP/RIGHT/DOWN/LEFT) 到邊緣
x.get_corner(vector) x 的 vector 角落
x.match_color(y) 讓 x 和 y 顏色一樣
x.bg=BackGroundRectangle(x,屬性) x 背景的屬性設定
x.rotate(TAU(n/360)) 將 x 旋轉 n 度 ,其中, TAU=2np.pi
x.set_color_by_gradient(color1,color2,...) x 顏色按設定漸變
書寫 LaTeX 的時候,用 x=TexMobject("") 等價於 x=TextMobject("$$"),,其中,‘\’ 的意義成為空格,兩個'\ ' 才表示後跟公式
幾個常用的技巧:
最佳化動畫出現/消失方式 manim使用(五) 動畫效果-建立動畫 - 知乎 (zhihu.com)
manim邊學邊做--MathTex