ManimBanner
是 Manim 中用于展示 Manim 标志的类,可以在动画中添加一个简洁的 Manim 标志。dark_theme=True
参数用于选择是否使用深色主题。
ManimBanner(dark_theme=True)
示例1:
from manim import *
class DarkThemeBanner(Scene):
def construct(self):
banner = ManimBanner()
self.play(banner.create())
self.play(banner.expand())
self.wait()
self.play(Unwrite(banner))
运行结果:
示例2:
class DarkThemeBanner(Scene):
def construct(self):
banner = ManimBanner()
logo_black = WHITE
ds_m1 = MathTex(r"\mathbb{M}", fill_color=logo_black).scale(7)
ds_m2 = MathTex(r"\mathbb{A}", fill_color=logo_black).scale(4)
ds_m3 = MathTex(r"\mathbb{N}", fill_color=logo_black).scale(4)
ds_m4 = MathTex(r"\mathbb{I}", fill_color=logo_black).scale(4)
ds_m5 = MathTex(r"\mathbb{M}", fill_color=logo_black).scale(4)
ds_m=VGroup(ds_m1,ds_m2,ds_m3,ds_m4,ds_m5).arrange(RIGHT)
self.add(ds_m)
self.wait(1)
self.play(Unwrite(ds_m))
self.play(banner.create())
self.play(banner.expand())
self.wait()
self.play(Unwrite(banner))
运行结果:
同样的结果可以不同的代码实现:
示例3:
from manim import *
class ManimCELogo(Scene):
def construct(self):
self.camera.background_color = "#ece6e2"
logo_green = "#87c2a5"
logo_blue = "#525893"
logo_red = "#e07a5f"
logo_black = "#343434"
ds_m = MathTex(r"\mathbb{M}", fill_color=logo_black).scale(7)
ds_m.shift(2.25 * LEFT + 1.5 * UP)
circle = Circle(color=logo_green, fill_opacity=1).shift(LEFT)
square = Square(color=logo_blue, fill_opacity=1).shift(UP)
triangle = Triangle(color=logo_red, fill_opacity=1).shift(RIGHT)
logo = VGroup(triangle, square, circle, ds_m) # order matters
logo.move_to(ORIGIN)
self.add(logo)
运行结果:
示例4:
from manim import *
class ExpandDirections(Scene):
def construct(self):
banners = [ManimBanner().scale(0.5).shift(UP*x) for x in [-2, 0, 2]]
self.play(
banners[0].expand(direction="right"),
banners[1].expand(direction="center"),
banners[2].expand(direction="left"),
)
运行结果:
在 Manim 中,有几个函数和类与 ManimBanner
类似,主要用于添加各种类型的标志或元素。以下是一些相关的函数和类:
-
Title
:可以用于为场景添加一个标题。title = Title("My Title") self.add(title)
-
Subtitle
:用于添加副标题,通常是对标题的补充或解释。subtitle = Subtitle("My Subtitle") self.add(subtitle)
-
ImageMobject
:可以用于添加图像,如果你有自定义的图标或标志。logo = ImageMobject("path/to/your/logo.png") self.add(logo)
-
Text
:用于添加简单的文本,适用于需要注释或说明的场景。text = Text("Hello, Manim!") self.add(text)
-
Polygon
、Circle
、Square
等几何图形:可以用来构建各种形状或装饰元素,也可以用于动画。circle = Circle() self.add(circle)
示例:
class DarkThemeBanner01(Scene):
def construct(self):
title = Title("My Title").set_color(RED,WHITE)
self.add(title)
# 创建副标题
subtitle = Text("我的动画", font="SimHei", font_size=48)
#title= Text("Using Manim", font_size=18)
subtitle.next_to(title, DOWN)
self.add(subtitle)
logo = ImageMobject("BarChartExample112_ManimCE_v0.18.1.png")
logo.scale(0.85).shift(DOWN-2*LEFT) # 将图像缩放到原始大小的50%
self.add(logo)
text = Text("Hello, Manim!").shift(UP+4.5*LEFT)
self.add(text)
circle = Circle(fill_opacity=1) .shift(DOWN+4.5*LEFT).scale(1)
#self.add(circle)
square = Square(fill_opacity=1)# .shift(DOWN+4.5*LEFT).scale(0.5)
a=VGroup(circle,square).arrange(DOWN).shift(DOWN+4.5*LEFT).scale(0.5)
self.add(a)