likes
comments
collection
share

manim边学边做--Text

作者站长头像
站长
· 阅读数 22

与之前介绍的TexMathTex等等类不一样,本次介绍的是Text类,是专门用来显示纯文本的。Text类虽然不能显示数学公式,却提供了更加丰富和方便的方式来展示文字内容。manim边学边做--TextTextmanim各个模块中的位置大致如上图中所示。

1. 主要参数

Text的参数比较多,方便我们用多种方式来展示文本。其中,常用的参数有:

参数名称类型说明
textstr文本内容
fontstr字体
warn_missing_fontbool字体缺失时是否警告提示
fill_opacityfloat透明度
stroke_widthfloat字体线条粗细
colorstr颜色
line_spacingfloat行间距(多行文本时生效)
slantstr斜体
weightfloat粗体
t2cdict设置文本局部的颜色
t2fdict设置文本局部的字体
t2gdict设置文本局部的渐变色
t2sdict设置文本局部的斜体
t2wdict设置文本局部的粗体
gradienttuple渐变色
heightfloat文本高度
widthfloat文本宽度

2. 主要方法

Text的方法主要有两个:

名称说明
font_list获取可用字体的列表
init_colors初始化颜色,目前是空方法

通过font_list方法,可以获取目前系统中可用字体的名称,这样设置上面font参数的时候,不容易出错。

text = Text("")
print(text.font_list())

manim边学边做--Text上面输出的是我系统中已安装的字体,不同的系统会有差别。

3. 使用示例

3.1. 字体相关设置

字体设置相关的参数主要有:fontfont_sizewarn_missing_font。其中,主要使用的是font参数,font_size参数是设置字体大小的,warn_missing_font参数是字体缺失时是否需要警告。

# Hack 字体
text = Text("Hello Manim", font="Hack")

# STLiti 字体
text = Text("Hello Manim", font="STLiti")

# Harrington 字体
text = Text("Hello Manim", font="Harrington")

manim边学边做--Text

3.2. 显示样式设置

显示样式类似于一般富文本编辑器上面的加粗,斜体等等。

# 粗体
text = Text("Hello Manim", weight=BOLD)

# 斜体
text = Text("Hello Manim", slant=ITALIC)

# 行间距
text = Text("row1-Manim\nrow2-Manim", 
            line_spacing=2)

manim边学边做--Text

3.3. 颜色相关设置

颜色有两种设置方式,一种是设置单一颜色,一种是设置渐变色。

# 单一颜色
text = Text("Hello Manim", color=RED)
text = Text("Hello Manim", color=YELLOW)

# 渐变色
text = Text("Hello Manim1", 
            gradient=(RED, BLUE))
text = Text("Hello Manim2", 
            gradient=(BLUE, GREEN))

manim边学边做--Text

3.4. t2* 系列设置

前面介绍的示例中,使用的参数,都是针对整个文本有效的,而t2* 类的几个参数提供了更加灵活的设置方式,可以设置一部分文本的样式。

# 设置两种字体
text = Text(
    "Hello Manim",
    t2f={
        "Hello": "STLiti",
        "Manim": "Harrington",
    },
)

# 设置粗体和斜体
text = Text(
    "Hello Manim",
    t2s={"Hello": ITALIC},
    t2w={"Manim": BOLD},
)

# 设置两种颜色
text = Text(
    "Hello Manim",
    t2c={
        "Hello": RED,
        "Manim": GREEN,
    },
)

# 设置两种渐变色
text = Text(
    "Hello1 Manim2",
    t2g={
        "ello1": (RED, BLUE),
        "anim2": (BLUE, GREEN),
    },
)

manim边学边做--Text

3.5. 其他参数

还有其他几个参数用的不太多,比如:stroke_widthheightwidthstroke_width可以设置字体的粗细,但是没有weight参数直观;heightwidth也可以设置字体大小,但是没有font_size参数直观。

4. 附录

文中完整的代码放在网盘中了(text.py),下载地址: 完整代码 (访问密码: 6872)

转载自:https://juejin.cn/post/7387581960028274738
评论
请登录