首页 > 其他分享 >Manim 学习笔记(二)--文本测试

Manim 学习笔记(二)--文本测试

时间:2024-07-26 09:30:40浏览次数:8  
标签:play font -- text self label Text 文本 Manim

文本测试--效果:

代码:

#-*- coding: utf-8 -*-
from manim import *
class TransformExample(Scene):
    def construct(self):
        banner = ManimBanner()
        banner.shift(UP * 0.5)
        self.play(banner.create(), run_time=1)
        self.play(banner.animate.scale(0.3), run_time=0.5)
        self.play(banner.expand(), run_time=1)

        t = Text("测试中文能否显示").next_to(banner, DOWN )
        tex = VGroup(
            Text("测试数学公式:", font_size=30),
            Tex(r"$\sum_{n=1}^\infty \frac{1}{n^2} = \frac{\pi^2}{6}$"),
        )
        tex.arrange(RIGHT, buff=SMALL_BUFF)
        tex.next_to(t, DOWN)
        self.play(Write(t), run_time=1)
        self.play(Write(tex), run_time=1)

        self.wait()
        self.clear()

        t1=Text("manim", font="Consolas", slant=ITALIC).next_to(banner, UP)
        t2=Text("数学", font="STHupo", font_size=60).next_to(banner, UP)  # 华文行楷        
        t3=Text("之旅", font="STXingkai", weight=BOLD).next_to(banner, UP)   # 华文彩云
        vg = VGroup(t1, t2, t3)
        vg.next_to(banner, UP)
        vg.arrange(RIGHT, buff=SMALL_BUFF)
        self.play(Write(vg),run_time=1)
        self.wait()
        
        t4=Text("Powred by ZJZ", t2c={"Powred": BLUE, "by": RED, "ZJZ": GREEN}, weight=BOLD)
        t4.next_to(tex, DOWN * 3)
        self.play(Write(t4),run_time=1)
        self.wait()
        self.clear()
        d1=Dot()
        label = Text("A wild circle appears!")
        label.next_to(d1, DOWN, buff=0.5)
        label2 = Text("Powered by ZJZ!")
        label2.next_to(d1, DOWN, buff=0.5)

        t5=Text('大家好')
        t6=Ellipse(color=BLUE,fill_color=WHITE,fill_opacity=0.5)
        t6.surround(t5)
        self.play(Write(t6),Write(t5))
        self.wait()
        self.clear()
        announcement = Text("Let us draw a circle.")
        
        self.play(Write(announcement))
        self.wait()
        
        self.play(announcement.animate.next_to(d1, UP, buff=0.5))
        #self.play(Create(t1))
        
        self.play(Write(label))
        self.wait()

        self.play(Transform(label, label2))
        self.wait()

        self.play(Write(announcement),Write(label))
        self.wait()
        self.clear()

        formula = MathTex(r"[z^n]f(z) = \frac{1}{2\pi i}\oint_{\gamma} \frac{f(z)}{z^{n+1}}~dz")
        self.play(Write(formula), run_time=3)
        self.wait()
        self.clear()
        
        eq1 = MathTex("42 {{ a^2 }} + {{ b^2 }} = {{ c^2 }}")
        eq2 = MathTex("42 {{ a^2 }} = {{ c^2 }} - {{ b^2 }}")
        eq3 = MathTex(r"a^2 = \frac{c^2 - b^2}{42}")
        self.add(eq1)
        self.wait()
        self.play(TransformMatchingTex(eq1, eq2))
        self.wait()
        self.play(TransformMatchingShapes(eq2, eq3))
        self.wait()
        self.clear()

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

        self.wait(1)


        self.example01()
        self.wait()
        self.clear()

        self.example02()
        self.wait()
        self.clear()

        self.example03()
        self.wait()
        self.clear()

        self.example04()

        self.wait()

    def example01(self):
        """
        字体相关设置
        """
        left = LEFT * 2.5
        title = Text("设置不同字体:", font="KaiTi", font_size=25).shift(
            LEFT * 2 + UP * 2
        )
        self.play(Write(title))

        # 不同的字体和大小
        label = Text("Hack字体:", t2f={"字体": "STLiti"}, font_size=25).shift(
            left + UP
        )
        text = Text("Hello Manim", font="Hack")
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

        label = Text("STHupo字体:", t2f={"字体": "STHupo"}, font_size=25).shift(left)
        text = Text("Hello Manim", font="STHupo")
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

        label = Text("STZhongsong字体:", t2f={"字体": "STZhongsong"}, font_size=25).shift(
            LEFT * 2 + DOWN
        )
        text = Text("Hello Manim", font="STZhongsong")
        text.next_to(label, direction=RIGHT, buff=0.2)
        self.add(label)
        self.play(Write(text))

    def example02(self):
        """
        显示样式相关设置
        """
        left = LEFT * 2.5
        title = Text("设置文本的样式:", font="STLiti", font_size=25).shift(
            LEFT * 2 + UP * 2
        )
        self.play(Write(title))

        label = Text("粗体:", font="STLiti", font_size=25).shift(left + UP)
        text = Text("Hello Manim", weight=BOLD)
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

        label = Text("斜体:", font="STLiti", font_size=25).shift(left)
        text = Text("Hello Manim", slant=ITALIC)
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

        label = Text("行间距:", font="STLiti", font_size=25).shift(left + DOWN * 1.5)
        text = Text("row1-Manim\nrow2-Manim", line_spacing=2)
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

    def example03(self):
        """
        颜色相关设置
        """
        left = LEFT * 2.5
        title = Text("设置文本颜色:", font="STLiti", font_size=25).shift(
            LEFT * 2 + UP * 2
        )
        self.play(Write(title))

        label = Text("红色:", font="STLiti", font_size=25).shift(left + UP)
        text = Text("Hello Manim", color=RED)
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

        label = Text("黄色:", font="STLiti", font_size=25).shift(left)
        text = Text("Hello Manim", color=YELLOW)
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

        label = Text("红变蓝:", font="STLiti", font_size=25).shift(left + DOWN)
        text = Text("Hello Manim1", gradient=(RED, BLUE))
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

        label = Text("蓝变绿:", font="STLiti", font_size=25).shift(left + DOWN * 2)
        text = Text("Hello Manim2", gradient=(BLUE, GREEN))
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

    def example04(self):
        """
        t2* 局部设置系列
        """
        left = LEFT * 2.5
        title = Text("设置文本局部:", font="STLiti", font_size=25).shift(
            LEFT * 2 + UP * 2
        )
        self.play(Write(title))

        label = Text("两种字体:", font="STLiti", font_size=25).shift(left + UP)
        text = Text("Hello Manim", t2f={"Hello": "STLiti", "Manim": "Harrington"})
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

        label = Text("粗体斜体:", font="STLiti", font_size=25).shift(left)
        text = Text("Hello Manim", t2s={"Hello": ITALIC}, t2w={"Manim": BOLD})
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

        label = Text("两种颜色:", font="STLiti", font_size=25).shift(left + DOWN)
        text = Text("Hello Manim", t2c={"Hello": RED, "Manim": GREEN})
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

        label = Text("两种渐变:", font="STLiti", font_size=25).shift(left + DOWN * 2)
        text = Text("Hello1 Manim2", t2g={"ello1": (RED, BLUE), "anim2": (BLUE, GREEN)})
        text.next_to(label, direction=RIGHT, buff=0.5)
        self.add(label)
        self.play(Write(text))

标签:play,font,--,text,self,label,Text,文本,Manim
From: https://www.cnblogs.com/zjzBlogs/p/18324534

相关文章

  • 《最新出炉》系列入门篇-Python+Playwright自动化测试-53- 处理面包屑(详细教程)
    1.简介面包屑(Breadcrumb),又称面包屑导航(BreadcrumbNavigation)这个概念来自童话故事“汉赛尔和格莱特”,当汉赛尔和格莱特穿过森林时,不小心迷路了,但是他们发现沿途走过的地方都撒下了面包屑,让这些面包屑来帮助他们找到回家的路。所以,面包屑导航的作用是告诉访问者他们在网站中......
  • Rocky Linux优化
    一、修改网卡名称为eth1、方法一(在安装系统时修改):#进入启动菜单后按Tab键,在quiet后添加net.ifnames=0biosdevname=0>vmlinuzinitrd=initrd.imginst.stage2=hd:LABEL=CentOS\x207\x20x86_64quietnet.ifnames=0biosdevname=02、方法二(安装完系统修改)[root@Rocky9~]#c......
  • Manim 学习笔记(三)--坐标系与坐标平面
    坐标系与坐标平面--效果:代码:#-*-coding:utf-8-*-frommanimimport*classZBX_ZBPM(Scene):defconstruct(self):#坐标平面(网格)my_plane=NumberPlane(faded_line_ratio=2,x_range=[-8,8,1],#[前两个参数的......
  • BGP(Border Gateway Protocol,边界网关协议)劫持是指恶意或非法地篡改BGP路由信息的行为
    BGP(BorderGatewayProtocol,边界网关协议)劫持是指恶意或非法地篡改BGP路由信息的行为。BGP是互联网上用来交换路由信息的主要协议之一,它负责决定网络数据包应该如何从一个网络路由到另一个网络。BGP劫持可以分为两种主要类型:前缀劫持(PrefixHijacking):在前缀劫持中,攻击者发送......
  • 一文教你如何利用ThinkPHP6打造高效SEO优化的网站!
    在今天的互联网时代,网站的SEO(SearchEngineOptimization)优化已经成为了网站建设的一个重要环节。ThinkPHP6是一种基于PHP语言的开源Web应用框架,因其高效、安全、简洁等优势受到广泛的使用和推崇。本文将为大家介绍如何使用ThinkPHP6进行网站SEO优化。一、ThinkPHP6中SEO优化......
  • AtCoder Beginner Contest 360 题解(C-E)
    C-MoveIt题目链接:C-MoveIt题目大意:有\(N\)个盒子和\(N\)个物品编号为\(1-N\),物品\(i\)在盒子\(A_i\)中,重量为\(W_i\),你可以进行一种操作将盒子中的一件物品移动到其他任意盒子中,代价为\(W_i\),求使得所有盒子中只存在一件物品的最小操作代价。题解:贪心,可以发现......
  • php--序列化与反序列化
    ......
  • Windows10禁用资源管理器文件夹自动视图转换
    在Windows系统中,当使用资源管理器浏览文件夹时,系统有时会自动将文件夹视图转换为特定类型(如音乐或图片)的显示模式,这可能会给一些用户带来不便。为了禁用这个功能,你可以通过修改注册表来实现。以下是详细的步骤:方法一:通过修改注册表禁用自动视图转换打开注册表编辑器:按下Win+......
  • 基于springboot的学科竞赛管理-毕业设计+springboot+VUE
    介绍基于Springboot的学科竞赛管理系统是一款专为学科竞赛活动设计的综合管理平台,旨在提高竞赛组织和参与的效率。该系统分为管理端、教师端和学生端,每个角色均提供了丰富的功能模块,以满足不同用户的需求和职责。技术栈后端技术栈:Springboot+Mysql+Maven前端技术栈:Vue+Html......
  • 基于SpringBoot+Vue的人事系统 毕业设计 springboot+Vue+mysql
    介绍本人事系统基于SpringBoot和Vue框架开发,旨在为企业提供高效、便捷、准确的人事管理解决方案。通过现代化的技术手段,实现了人事数据的集中管理、流程的自动化处理以及信息的实时共享,从而提高企业的人事管理效率和决策科学性。技术栈后端技术栈:Springboot+Mysql+Maven......