Variable
是Mobjects
分类中专门用来显示变量的一个class
。
前面两篇介绍的Integer
和DecimalNumber
都可以作为变量Variable
来显示。Variable
在manim
各个模块中的位置如上图中所示。
1. 主要参数
Variable
以label = value
的形式展示数值的变化情况。
一般会结合其他动画一起使用,在其他动画运行时动态的显示其数值的变化。
它的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
var | float | 要显示的数字 |
num_decimal_places | int | 保留的小数位数,自动四舍五入 |
label | – str – Tex – MathTex – Text – SingleStringMathTex |
变量的标签,也就是变量的名称 |
var_type | – DecimalNumber – Integer |
变量的类型,有Integer 和DecimalNumber 两种。 |
这里label
参数的类型,Tex
,MathTex
等等也是manim
的Mobjects
中的模块,后续会详细介绍。
2. 使用示例
下面通过示例看看Variable
如何使用的。
2.1. 类型
Variable
支持Integer
和DecimalNumber
两种类型的变量。
var1 = Variable(100.123, Text("整数"), var_type=Integer)
var2 = Variable(3.14159, Text("浮点数"), var_type=DecimalNumber)
从上面的示例可以看出,对于var1
,虽然它的值100.123
是浮点数,
但是设置var_type=Integer
之后,还是会以整数的形式来显示。
2.2. 公式
Variable
的label
除了像上面的示例一样支持中文,还可以用数学公式:
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)
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))
3. 附件
文中完整的代码放在网盘中了(variable.py
),
下载地址: 示例代码 (访问密码: 6872)
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容