翼度科技»论坛 编程开发 python 查看内容

manim边学边做--DecimalNumber

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
DecimalNumber是Mobjects分类中专门用来显示数字的一个class。
它的主要功能是提供一种展示数字的方式,包括整数和浮点数。

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

虽然只是数字的展示,但是manim也提供了丰富的参数,可以在不同的场景中用不同的展示方式。
其中重要且常用的参数有:
参数名称类型说明numberfloat要显示的数字num_decimal_placesint保留的小数位数,自动四舍五入include_signbool时候包含正负号group_with_commasbool是否用逗号分隔数字,以提高可读性show_ellipsisbool当一个数字被四舍五入截断时,是否用省略号表示unitstr数值的单位unit_buff_per_font_unitfloat数值和单位之间的间距include_background_rectanglebool是否包含背景矩形此外,还有设置字体大小,颜色以及线条等等样式方面的参数(这些参数一般是mobjects模块中所有class通用的)。
2. 主要方法

DecimalNumber类主要用于展示数字,提供的方法不多,主要有3个:
名称说明get_value获取数值set_value设置数值increment_value增加数值使用示例:
  1. val = DecimalNumber(10, group_with_commas=True)
  2. print(f"原始数据:{val.get_value()}")
  3. val.set_value(20)
  4. print(f"设置数据:{val.get_value()}")
  5. val.increment_value(2)
  6. print(f"递增数据:{val.get_value()}")
复制代码
运行效果:

3. 使用示例

接下来,通过示例演示主要参数的作用。
3.1. 正负号和单位

默认显示时,正数是不显示正号(+)的,显示正号通过 include_sign参数。
  1. number = 3.1415926
  2. val = DecimalNumber(number, include_sign=True)
复制代码
数值也可以加上单位,比如下面添加一个(km/s)速度单位。
  1. val = DecimalNumber(number, unit="(km/s)")
复制代码
单位和数值之间的距离也可以调整,通过unit_buff_per_font_unit来调整。
  1. val = DecimalNumber(number, unit="(km/s)", unit_buff_per_font_unit=0.01)
复制代码
显示效果:

3.2. 小数位数

从上面的示例可以看出,DecimalNumber默认保留2位小数,通过num_decimal_places可以控制保留的小数位数,舍弃的部分会自动四舍五入。
  1. number = 3.1415926
  2. val = DecimalNumber(number, num_decimal_places=3)
  3. val = DecimalNumber(number, num_decimal_places=5)
复制代码
DecimalNumber还有个show_ellipsis参数,通过它,可以让我们知道显示的数值是否经过了四舍五入。
它会给经过四舍五入处理的数值加上省略号
  1. val = DecimalNumber(number, num_decimal_places=3, show_ellipsis=True)
复制代码
显示效果:

3.3. 数值中的逗号和背景

在会计统计中,对于比较大的数值,一般会用逗号分割数值,DecimalNumber的group_with_commas参数就控制是否用逗号分割数值的参数。
  1. number = 123456789
  2. val = DecimalNumber(number, group_with_commas=True)
复制代码
需要突出显示的数值,也可以通过include_background_rectangle参数给数值添加背景。
  1. val = DecimalNumber(number, include_background_rectangle=True)
复制代码
显示效果:

4. 附件

文中完整的代码放在网盘中了(decimal.py),
下载地址: [https://url11.ctfile.com/d/45455611-61580017-3188ea?p=6872]() (访问密码: 6872)

来源:https://www.cnblogs.com/wang_yb/p/18243662
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

x

举报 回复 使用道具