manim边学边做--Variable

宁睿  金牌会员 | 2024-6-14 21:36:38 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 950|帖子 950|积分 2860

Variable是Mobjects分类中专门用来显示变量的一个class。
前面两篇介绍的Integer和DecimalNumber都可以作为变量Variable来显示。

Variable在manim各个模块中的位置如上图中所示。
1. 主要参数

Variable以label = value的情势展示数值的变革情况。
一样寻常会结合其他动画一起使用,在其他动画运行时动态的显示其数值的变革。
它的主要参数有:
参数名称范例说明varfloat要显示的数字num_decimal_placesint保存的小数位数,主动四舍五入label
- str
- Tex
- MathTex
- Text
- SingleStringMathTex
变量的标签,也就是变量的名称var_type
- DecimalNumber
- Integer
变量的范例,有Integer和DecimalNumber两种。这里label参数的范例,Tex,MathTex等等也是manim的Mobjects中的模块,后续会具体介绍。
2. 使用示例

下面通过示例看看Variable如何使用的。
2.1. 范例

Variable支持Integer和DecimalNumber两种范例的变量。
  1. var1 = Variable(100.123, Text("整数"), var_type=Integer)
  2. var2 = Variable(3.14159, Text("浮点数"), var_type=DecimalNumber)
复制代码

从上面的示例可以看出,对于var1,虽然它的值100.123是浮点数,
但是设置var_type=Integer之后,还是会以整数的情势来显示。
2.2. 公式

Variable的label除了像上面的示例一样支持中文,还可以用数学公式:
  1. var1 = Variable(3, Tex(r"$x$"), var_type=Integer)
  2. var2 = Variable(4, Tex(r"$y$"), var_type=Integer)
  3. var3 = Variable(5, Tex(r"$\sqrt{x^2+y^2}$"), var_type=Integer)
复制代码

2.3. 联动

最后,既然是变量,肯定能够动态的变革。
Variable专门有个tracker属性,
通过它可以实时的设置和获取Variable的值,达到动态显示的效果。
  1. start = 1
  2. var1 = Variable(start, Tex(r"$x$"), var_type=Integer)
  3. var2 = Variable(start, Tex(r"$x^2$"), var_type=Integer)
  4. var3 = Variable(start, Tex(r"$x^3$"), var_type=Integer)
  5. # var2 随着 var1 变化,是var1的平方
  6. var2.add_updater(lambda v: v.tracker.set_value(var1.tracker.get_value() ** 2))
  7. # var3 随着 var1 变化,是var1的立方
  8. var3.add_updater(lambda v: v.tracker.set_value(var1.tracker.get_value() ** 3))
  9. # 动态设置 var1 的递增
  10. self.play(var1.tracker.animate.increment_value(1))
  11. self.play(var1.tracker.animate.increment_value(1))
  12. self.play(var1.tracker.animate.increment_value(1))
  13. self.play(var1.tracker.animate.increment_value(1))
  14. self.play(var1.tracker.animate.increment_value(1))
复制代码

3. 附件

文中完整的代码放在网盘中了(variable.py),
下载地址: 示例代码 (访问密码: 6872)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表