You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Manim Community中将文本放置在矩形内部

Manim 文本置于矩形内部实现方法

以下是两种常用的实现方案,基于目前主流的Manim Community版本编写:

方案1:自动适配文本大小的包围矩形

这是最省事的方法,不需要手动计算矩形尺寸,系统会根据文本大小自动生成适配的矩形:

  • 首先创建文本对象:text = Text("需要显示的文本内容")
  • 调用SurroundingRectangle生成对应矩形:rect = SurroundingRectangle(text, buff=0.3, color=BLUE, stroke_width=2)
    其中buff参数控制矩形边缘和文本之间的留白距离,数值越大留白越多,可根据需求调整
  • 两者默认已经居中对齐,直接添加到场景即可

方案2:自定义矩形大小后对齐文本

如果需要固定矩形的宽高,不跟随文本大小变化,可以手动创建矩形后对齐文本:

  • 先创建指定尺寸的矩形:rect = Rectangle(width=4, height=2, color=GREEN, fill_opacity=0.1)
  • 调用move_to方法让文本居中于矩形:text = Text("测试文本").move_to(rect.get_center())

如果需要调整文本在矩形内的位置,比如靠左、靠上对齐,可以使用align_to方法,例如文本靠矩形顶部对齐的写法为text.align_to(rect, UP).shift(DOWN*0.2),后面的偏移量可根据留白需求调整。

完整可运行示例代码

from manim import *

class TextInRectangle(Scene):
    def construct(self):
        # 方案1效果演示
        text_auto = Text("自动适配矩形文本")
        rect_auto = SurroundingRectangle(text_auto, buff=0.2, color=YELLOW)
        group_auto = VGroup(text_auto, rect_auto).shift(LEFT*3)

        # 方案2效果演示
        rect_custom = Rectangle(width=5, height=2.5, color=BLUE, fill_opacity=0.1)
        text_custom = Text("自定义矩形文本").move_to(rect_custom.get_center())
        group_custom = VGroup(text_custom, rect_custom).shift(RIGHT*3)

        self.add(group_auto, group_custom)
        self.wait(3)

内容的提问来源于stack exchange,提问作者18501A1275 pagala sri ranga sa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:36:03