manim边学边做--Variable

news/2024/9/29 1:28:35

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参数的类型,TexMathTex等等也是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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/45533.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

java web 开发框架编

学习web 框架上开发需要的是安装 mysql 8.0 idea 2022 git 2.2.23 node 16以上 (新版本不好拉有些库了)jdk 最好是17以上 jdk8也是行的,反正不管新版如何发布,我们都是你发任你发,永远jjava 8 第一步新建项目一定要设文件编吗,然后才开如开发 2.配置maven <setti…

sc delete MySQL [SC] OpenService 失败 5: 拒绝访问。

参考—— https://blog.csdn.net/weixin_45764765/article/details/120270324想重新为M有SQL命名,结果删除的时候出现了拒绝访问 解决方法—— 以管理员身份运行命令提示符 再次执行命令 成功

信息打点-协议应用_内网资产_CDN_WAF_负载均衡_防火墙

服务信息获取-协议应用&内网资产 常见端口默认对应的服务:特殊服务端口:端口扫描工具:旁注查询 旁注查询,又称为旁站查询或同服务器网站查询,是一种信息安全和网络侦查技术,主要用于发现与目标网站托管在同一服务器上的其他网站。这种查询的目的通常与网络安全测试、…

【pycharm调试模式异常】can‘t open file ‘C:\\Program‘: [Errno 2] No such file or directory

错误系统:wendows10pycharm版本: pycharm专业版和社区版都有对应问题2023.1和2023.2都有同样问题python版本:3.11 官网问题地址上面只是我出问题的环境,不知道其他环境或者版本有没有同样的问题现象: 执行debug,程序启动后立即退出,错误信息:can’t open file ‘C:\Pro…

模拟集成电路设计系列博客——7.1.6 多比特SAR ADC

7.1.6 多比特SAR ADC 我们目前讨论的逐次逼近型ADC在每个周期都通过单次的比较将搜索空间一分为二。这个搜索可以通过在每个周期进行多次比较来实现加速,每次将搜索空间切分为更小的区域。例如,如果我们想要猜测一个1到128之间的数时,我们除了提问“这个数是否大于64”,还可…

静态路由综合实验

1.除R5的环回地址固定以外,整个其他所有网段基于192.168.1.0/24进行合理的ip地址划分 2.R1-R4每个路由器存在两个环回接口,用于模拟连接PC网段;地址也在192.168.1.0/24这个网络范围内,R3下面PC通过DHCP获取一个合法的地址 3.R1-R4上不能直接编写到达5.5.5.0/24的静态路由,…

模拟集成电路设计系列博客——7.1.5 SAR ADC中的错误纠正

7.1.5 SAR ADC中的错误纠正 片上部件的最佳匹配精度可以达到百分之0.1,但是这对于有着10比特及以上精度的SAR ADC来说仍然不够,因此需要一种校正手段。其中一种用于获得16比特线性ADC的错误纠正方式如下图所示[Lee, 1984]:在这种方式中,MSB部分通过二进制权重电容阵列来实现…

MSF渗透使用说明

实验环境前提:对方的445端口必须开放,首先要保证是能够访问到目标机器的,那么我们先ping一下目标机器,看网络是否连通如果无法ping的话,对方机器必须要关闭防火墙,或许有其他方法在对方开启防火墙的情况下访问到对方?目前采用关闭防火墙使用工具:kali靶机:windows serv…