DecimalNumber
是Mobjects
分类中专门用来显示数字的一个class
。
它的主要功能是提供一种展示数字的方式,包括整数和浮点数。DecimalNumber
在manim
各个模块中的位置如上图中所示。
1. 主要参数
虽然只是数字的展示,但是manim也提供了丰富的参数,可以在不同的场景中用不同的展示方式。
其中重要且常用的参数有:
参数名称 | 类型 | 说明 |
---|---|---|
number | float | 要显示的数字 |
num_decimal_places | int | 保留的小数位数,自动四舍五入 |
include_sign | bool | 时候包含正负号 |
group_with_commas | bool | 是否用逗号分隔数字,以提高可读性 |
show_ellipsis | bool | 当一个数字被四舍五入截断时,是否用省略号表示 |
unit | str | 数值的单位 |
unit_buff_per_font_unit | float | 数值和单位之间的间距 |
include_background_rectangle | bool | 是否包含背景矩形 |
此外,还有设置字体大小,颜色以及线条等等样式方面的参数(这些参数一般是mobjects
模块中所有class
通用的)。
2. 主要方法
DecimalNumber
类主要用于展示数字,提供的方法不多,主要有3个:
名称 | 说明 |
---|---|
get_value | 获取数值 |
set_value | 设置数值 |
increment_value | 增加数值 |
使用示例:
val = DecimalNumber(10, group_with_commas=True)
print(f"原始数据:{val.get_value()}")
val.set_value(20)
print(f"设置数据:{val.get_value()}")
val.increment_value(2)
print(f"递增数据:{val.get_value()}")
运行效果:
3. 使用示例
接下来,通过示例演示主要参数的作用。
3.1. 正负号和单位
默认显示时,正数是不显示正号(+
)的,显示正号通过 include_sign
参数。
number = 3.1415926
val = DecimalNumber(number, include_sign=True)
数值也可以加上单位,比如下面添加一个(km/s)
速度单位。
val = DecimalNumber(number, unit="(km/s)")
单位和数值之间的距离也可以调整,通过unit_buff_per_font_unit
来调整。
val = DecimalNumber(number, unit="(km/s)", unit_buff_per_font_unit=0.01)
显示效果:
3.2. 小数位数
从上面的示例可以看出,DecimalNumber
默认保留2位小数,通过num_decimal_places
可以控制保留的小数位数,舍弃的部分会自动四舍五入。
number = 3.1415926
val = DecimalNumber(number, num_decimal_places=3)
val = DecimalNumber(number, num_decimal_places=5)
DecimalNumber
还有个show_ellipsis
参数,通过它,可以让我们知道显示的数值是否经过了四舍五入。
它会给经过四舍五入处理的数值加上省略号。
val = DecimalNumber(number, num_decimal_places=3, show_ellipsis=True)
显示效果:
3.3. 数值中的逗号和背景
在会计统计中,对于比较大的数值,一般会用逗号分割数值,DecimalNumber
的group_with_commas
参数就控制是否用逗号分割数值的参数。
number = 123456789
val = DecimalNumber(number, group_with_commas=True)
需要突出显示的数值,也可以通过include_background_rectangle
参数给数值添加背景。
val = DecimalNumber(number, include_background_rectangle=True)
显示效果:
4. 附件
文中完整的代码放在网盘中了(decimal.py
),
下载地址: [https://url11.ctfile.com/d/45455611-61580017-3188ea?p=6872]() (访问密码: 6872)
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容