首页 > 其他分享 >manim边学边做--DecimalNumber

manim边学边做--DecimalNumber

时间:2024-06-12 11:55:36浏览次数:8  
标签:val -- number 数值 value 边学边 unit DecimalNumber

DecimalNumberMobjects分类中专门用来显示数字的一个class
它的主要功能是提供一种展示数字的方式,包括整数和浮点数。
image.png
DecimalNumbermanim各个模块中的位置如上图中所示。

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()}")

运行效果:
image.png

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)

显示效果:
out.gif

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)

显示效果:
out.gif

3.3. 数值中的逗号和背景

在会计统计中,对于比较大的数值,一般会用逗号分割数值,DecimalNumbergroup_with_commas参数就控制是否用逗号分割数值的参数。

number = 123456789
val = DecimalNumber(number, group_with_commas=True)

需要突出显示的数值,也可以通过include_background_rectangle参数给数值添加背景。

val = DecimalNumber(number, include_background_rectangle=True)

显示效果:
out.gif

4. 附件

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

标签:val,--,number,数值,value,边学边,unit,DecimalNumber
From: https://www.cnblogs.com/wang_yb/p/18243662

相关文章

  • 1
    种随机样本的生成器,可以用来建立可控制大小和复杂性的人工数据集。`种随机样本的生成器,可以用来建立可控制大小和复杂性的人工数据集。make_blob()——聚类生成器make_classification()——单标签分类生成器make_multilabel_classification()——多标签生成器make_regr......
  • AI智能文案助手ChatMoney:一键打造抖音爆款视频,助你轻松吸引千万级流量!
    本文由ChatMoney团队出品引言看着抖音上别人的视频轻松破百万点赞,是不是心里痒痒的?想知道他们是怎么做到的?其实,他们可能只是比您先一步掌握了这个秘密武器——ChatMoney。这不仅仅是一个工具,它是您抖音视频流量变现的加速器。您是否已经厌倦了平淡无奇的文案,看着自己的视频......
  • 抖音爆款制造机!用ChatMoney,一键生成爆款视频文案,轻松获得千万流量!
    本文由ChatMoney团队出品引言看着抖音上别人的视频轻松破百万点赞,是不是心里痒痒的?想知道他们是怎么做到的?其实,他们可能只是比您先一步掌握了这个秘密武器——ChatMoney。这不仅仅是一个工具,它是您抖音视频流量变现的加速器。您是否已经厌倦了平淡无奇的文案,看着自己的视频......
  • 个人总结
    在本学期的软件工程课程中,我经历了丰富的学习和成长。在课程开始时,我设定了学习目标,包括掌握Android开发等技能。尽管遇到了一些挑战,但我成功地掌握了Android开发的基本知识和技能。通过课堂学习、实践项目以及课后自主学习,我学会了使用AndroidStudio等开发工具,掌握了UI设计、用......
  • 在WEPAPI接口无法查询物料分组
     数据分组仅有业务对象没有实体表, 所以接口不能直接访问数据分组BOS_FORMGROUP通过表名反查业务对象标识,接口中使用查询到的业务对象标识可正常查询到数据.注意:可能存在分组没有对应的业务对象的情况,此时需要新建业务对象并设置对应的分组表. ......
  • 03《android studio开发实战(第三版)》阅读笔记
    第四章:用户界面开发 本章介绍了Android中的常见布局管理器,如LinearLayout、RelativeLayout和ConstraintLayout,以及它们的使用场景和特点。 学习了各种用户界面元素,如TextView、EditText、Button等的使用方法,以及如何将它们组合在一起创建复杂的用户界面。理解了Android中的资源......
  • excel中加水印以及二维码
    1.如何给excel添加二维码其实二维码就是一张图片,把生成的二维码作为图片返回给excel对应的栏位就可以达到目的,代码如下:点击查看代码publicBitmapGetBitmap(stringcode,ExcelPackagepackage){varsheet=package.Workbook.Worksheets[0];//创建QR码生成器......
  • WPF/C#:异常处理
    什么是异常?在C#中,异常是在程序执行过程中发生的特殊情况,例如尝试除以零、访问不存在的文件、网络连接中断等。这些情况会中断程序的正常流程。当C#程序中发生这种特殊情况时,会创建一个异常对象并将其抛出。这个异常对象包含了关于异常的详细信息,如异常类型和异常发生时的程序状......
  • 升级babel7后,直接引用element-ui中没有暴露出来的组件image-viewer.vue导致的打包错误
    问题&解决方案升级babel7后,原先代码中像这样直接引用element-ui组件的地方,出现了报错Moduleparsefailed:Unexpectedtoken(1:0)Youmayneedanappropriateloadertohandlethisfiletype.经过一番排查,我发现问题出在element-ui并未直接暴露该组件,导致直接引用时......
  • pythontest4
    fromcollectionsimportOrderedDictdeflru_simulation(num_blocks,page_sequence):#初始化LRU缓存cache=OrderedDict()#缺页计数器page_faults=0#遍历访问页面序列forpageinpage_sequence:#检查页面是否已在缓存中ifp......