manim中文字和目标的对齐方法的使用

为什么要文字对齐 ? 

对齐原则在现实生活中无处不在,比如:书籍、货架、地铁座位等等;对齐的目的其实就是在规整文案信息,对齐有利于信息传达以及视觉规范,当我们做文字编排工作时,要根据构图形式选择合理的对齐原则,每种对齐形式所传达的视觉感受也不同:左对齐、右对齐给人以整齐、严谨、划分明显的感受;居中对齐则属于更加活跃、可塑性强;而两端对齐更适用于文本段落,底部对齐以及顶部对齐在做海报时的装饰性文本会用到。

用manim实现字体的对齐

        接下来我们一步一的来,实现文字对齐

第一步:无法对齐,都指向目标的中间点

from manim import *  # 导入manim库,允许我们创建数学动画  

class LinearAlgebraDiagram(Scene):  # 定义一个名为LinearAlgebraDiagram的场景类  
    def construct(self):  # 定义构造函数,创建场景中的元素  
        # 创建中心文本  
        title = Text("Linear Algebra", font_size=48).set_color(WHITE)  # 创建主标题文本,字体大小为48,颜色为白色  
        subtitle = Text("线性代数", font_size=36).next_to(title, DOWN)  # 创建副标题文本,字体大小为36,并将其放置在主标题下方  
        Vt = VGroup(title, subtitle).arrange(DOWN, buff=0.5).shift(LEFT * 3)  # 将标题和副标题组合成一个组,垂直排列,距离为0.5,向左移动3个单位  

        # 创建学科文本  
        subjects = [  # 创建一个包含不同学科的列表  
            Text("Computer science", font_size=36).shift(LEFT * 3 + DOWN * 2),  # 计算机科学  
            Text("Physics", font_size=36).shift(LEFT * 3 + DOWN * 3),  # 物理  
            Text("Electrical engineering", font_size=36).shift(LEFT * 3 + DOWN * 4),  # 电气工程  
            Text("Mechanical engineering", font_size=36).shift(LEFT * 3 + DOWN * 5),  # 机械工程  
            Text("Statistics", font_size=36).shift(LEFT * 3 + DOWN * 6),  # 统计学  
        ]  

        subject_group = VGroup(*subjects).arrange(DOWN, buff=0.5).shift(RIGHT * 3)  # 将所有学科文本组合成一个组,垂直排列,右移3个单位  

        # 创建箭头  
        arrows = []  # 初始化一个空列表以存储箭头  
        for subject in subjects:  # 对于每个学科文本  
            arrow = Arrow(start=title.get_bottom(), end=subject.get_top(), buff=0.1, color=YELLOW)  # 创建箭头,起点为主标题底部,终点为学科文本顶部,颜色为黄色  
            arrows.append(arrow)  # 将箭头添加到列表中  

        # 添加元素到场景中  
        self.play(Write(title), Write(subtitle))  # 播放动画,将主标题和副标题写入场景中  
        self.wait(1)  # 等待1秒  

        for arrow, subject in zip(arrows, subjects):  # 逐个播放箭头和学科文本的动画  
            self.play(Create(arrow), Write(subject))  # 创建箭头和写入学科文本  
            self.wait(0.5)  # 每次动画之间等待0.5秒  

        self.wait(2)  # 最后等待2秒

运行结果: 

代码解释:
  1. 引入库: 最开始,代码导入 manim 库,这是一个用于创建数学和科学可视化动画的Python库。

  2. 创建场景类Linear

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yasen.M

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值