<bdo id="4g88a"><xmp id="4g88a">
  • <legend id="4g88a"><code id="4g88a"></code></legend>

    manim邊學邊做--Variable

    VariableMobjects分類中專門用來顯示變量的一個class。
    前面兩篇介紹的IntegerDecimalNumber都可以作為變量Variable來顯示。
    image.png
    Variablemanim各個模塊中的位置如上圖中所示。

    1. 主要參數

    Variablelabel = value的形式展示數值的變化情況。
    一般會結合其他動畫一起使用,在其他動畫運行時動態的顯示其數值的變化。

    它的主要參數有:

    參數名稱 類型 說明
    var float 要顯示的數字
    num_decimal_places int 保留的小數位數,自動四舍五入
    label
    - str
    - Tex
    - MathTex
    - Text
    - SingleStringMathTex
    變量的標簽,也就是變量的名稱
    var_type
    - DecimalNumber
    - Integer
    變量的類型,有IntegerDecimalNumber兩種。

    這里label參數的類型,Tex,MathTex等等也是manimMobjects中的模塊,后續會詳細介紹。

    2. 使用示例

    下面通過示例看看Variable如何使用的。

    2.1. 類型

    Variable支持IntegerDecimalNumber兩種類型的變量。

    var1 = Variable(100.123, Text("整數"), var_type=Integer)
    var2 = Variable(3.14159, Text("浮點數"), var_type=DecimalNumber)
    

    out.gif
    從上面的示例可以看出,對于var1,雖然它的值100.123是浮點數,
    但是設置var_type=Integer之后,還是會以整數的形式來顯示。

    2.2. 公式

    Variablelabel除了像上面的示例一樣支持中文,還可以用數學公式:

    var1 = Variable(3, Tex(r"$x$"), var_type=Integer)
    var2 = Variable(4, Tex(r"$y$"), var_type=Integer)
    var3 = Variable(5, Tex(r"$\sqrt{x^2+y^2}$"), var_type=Integer)
    

    out.gif

    2.3. 聯動

    最后,既然是變量,肯定能夠動態的變化。
    Variable專門有個tracker屬性,
    通過它可以實時的設置和獲取Variable的值,達到動態顯示的效果。

    start = 1
    var1 = Variable(start, Tex(r"$x$"), var_type=Integer)
    var2 = Variable(start, Tex(r"$x^2$"), var_type=Integer)
    var3 = Variable(start, Tex(r"$x^3$"), var_type=Integer)
    
    # var2 隨著 var1 變化,是var1的平方
    var2.add_updater(lambda v: v.tracker.set_value(var1.tracker.get_value() ** 2))
    
    # var3 隨著 var1 變化,是var1的立方
    var3.add_updater(lambda v: v.tracker.set_value(var1.tracker.get_value() ** 3))
    
    # 動態設置 var1 的遞增
    self.play(var1.tracker.animate.increment_value(1))
    self.play(var1.tracker.animate.increment_value(1))
    self.play(var1.tracker.animate.increment_value(1))
    self.play(var1.tracker.animate.increment_value(1))
    self.play(var1.tracker.animate.increment_value(1))
    

    out.gif

    3. 附件

    文中完整的代碼放在網盤中了(variable.py),
    下載地址: 示例代碼 (訪問密碼: 6872)

    posted @ 2024-06-14 23:12  wang_yb  閱讀(73)  評論(0編輯  收藏  舉報
    免费视频精品一区二区_日韩一区二区三区精品_aaa在线观看免费完整版_世界一级真人片
    <bdo id="4g88a"><xmp id="4g88a">
  • <legend id="4g88a"><code id="4g88a"></code></legend>