manim边学边做--Text

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

1. 主要参数

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

参数名称 类型 说明
text str 文本内容
font str 字体
warn_missing_font bool 字体缺失时是否警告提示
fill_opacity float 透明度
stroke_width float 字体线条粗细
color str 颜色
line_spacing float 行间距(多行文本时生效)
slant str 斜体
weight float 粗体
t2c dict 设置文本局部的颜色
t2f dict 设置文本局部的字体
t2g dict 设置文本局部的渐变色
t2s dict 设置文本局部的斜体
t2w dict 设置文本局部的粗体
gradient tuple 渐变色
height float 文本高度
width float 文本宽度

2. 主要方法

Text的方法主要有两个:

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

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

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

image.png
上面输出的是我系统中已安装的字体,不同的系统会有差别。

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

out.gif

3.2. 显示样式设置

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

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

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

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

out.gif

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))

out.gif

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),
    },
)

out.gif

3.5. 其他参数

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

4. 附录

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

posted @ 2024-07-04 15:53  wang_yb  阅读(370)  评论(0编辑  收藏  举报