用python的manim库实现表格的绘制和制作【table 上】

表格的定义:按行和列排列的信息(如数字和说明)。

这是人们参加的运动的表格:

 接下来绘制一些表格:

1. 创建一个包含小数数字的表格{DecimalTable}

DecimalTable 是 Manim 中用于创建一个包含小数数字的表格的类。这个函数非常适合用来展示数据,尤其是需要以小数形式展示的数值。

DecimalTable(table, element_to_mobject=<class 'manim.mobject.text.numbers.DecimalNumber'>,
 element_to_mobject_config={'num_decimal_places': 1}, **kwargs)

参数解释

  1. table:

    • 这是一个二维数组或列表,包含你想在表格中显示的数据。每一个子列表或数组表示表格中的一行。
  2. element_to_mobject:

    • 这是一个类 (默认为 DecimalNumber) 用于指定应该如何将表格中的元素转换成 Manim Mobject。DecimalNumber 用于生成显示小数的 Mobject。
  3. element_to_mobject_config:

    • 这是一个字典,用来配置 element_to_mobject 的行为。默认值为 {'num_decimal_places': 1},即将数字格式化为小数点后有 1 位数字。你可以在这个字典中添加更多的配置选项,例如设置数字的颜色、大小等。
  4. kwargs:

    • 这些是传递给 DecimalTable 的其他可选关键字参数,通常用于配置表格的外观和行为,比如表格的背景颜色、边框样式等。

使用示例

以下是一个简单的示例,展示如何使用 DecimalTable 来创建一个表格:

from manim import *  

class DecimalTableExample(Scene):  
    def construct(self):  
        table_data = [  
            [1.0, 2.5, 3.8],  
            [4.1, 5.9, 6.7],  
            [7.3, 8.2, 9.0]  
        ]  
        
        # 创建表格  
        decimal_table = DecimalTable(  
            table_data, 
            row_labels=[MathTex("x").set_color(PINK),MathTex("f(x)").set_color(YELLOW),MathTex("g(x)").set_color(GOLD)],
            h_buff=1,
            element_to_mobject=DecimalNumber,   
            element_to_mobject_config={'num_decimal_places': 3}  
        )  

        self.play(Create(decimal_table))  
        self.wait(2)

运行结果:

 

示例2: 

from manim import *

class DecimalTableExample(Scene):
    def construct(self):
        x_vals = [-2,-1,0,1,2]
        y_vals = np.exp(x_vals)
        t0 = DecimalTable(
            [x_vals, y_vals],
            row_labels=[MathTex("x"), MathTex("f(x)=e^{x}")],
            h_buff=1,
            element_to_mobject_config={"num_decimal_places": 2})
        self.add(t0)

 2.创建一个包含整数的表格【IntegerTable

IntegerTable 是 Manim 中用于创建一个包含整数的表格的类。这个类非常适合用来展示整数数据,类似于 DecimalTable,但专注于整数。

IntegerTable(table, element_to_mobject=<class 'manim.mobject.text.numbers.Integer'>, 
**kwargs)

参数解释

  1. table:

    • 这是一个二维数组或列表,表示你想在表格中显示的数据。每个子列表或数组构成表格中的一行。
  2. element_to_mobject:

    • 这是一个类,默认值为 Integer,用于指定如何将表格中的元素转换为 Manim Mobject。Integer 是用来生成显示整数的 Mobject,适合在动画和场景中展示整数。
  3. kwargs:

    • 这些是其他可选的关键字参数,通常用于配置表格的外观和行为,例如表格的背景颜色、边框样式、字体大小等。

使用示例

以下是一个简单的示例,展示如何使用 IntegerTable 创建一个包含整数的表格:

from manim import *

class IntegerTableExample(Scene):
    def construct(self):
        t0 = IntegerTable(
            [[0,30,45,60,90],
            [90,60,45,30,0]],
            col_labels=[
                MathTex("\\frac{\sqrt{0}}{2}"),
                MathTex("\\frac{\sqrt{1}}{2}"),
                MathTex("\\frac{\sqrt{2}}{2}"),
                MathTex("\\frac{\sqrt{3}}{2}"),
                MathTex("\\frac{\sqrt{4}}{2}")],
            row_labels=[MathTex("\sin"), MathTex("\cos")],
            h_buff=1,
            element_to_mobject_config={"unit": "^{\circ}"})
        self.add(t0)

运行结构: 

 3.创建数学表达式或符号的表格【MathTable

MathTable 是 Manim 中用于创建一个包含数学表达式或符号的表格的类。与其他表格类类似,MathTable 专注于展示数学内容,非常适合用于数学相关的演示。

参数解释

  1. table:

    • 这是一个二维数组或列表,表示你想在表格中显示的数据。每个子列表或数组构成表格中的一行,内容可以是数学表达式的字符串。
  2. element_to_mobject:

    • 这是一个类,默认值为 MathTex,用于指定如何将表格中的元素转换为 Manim Mobject。MathTex 用于生成可渲染的数学文本,适合展示 LaTeX 格式的数学表达式。
  3. kwargs:

    • 这里可以传递其他可选的关键字参数,通常用于配置表格的外观和行为,例如表格的对齐方式、字体大小、颜色等。

使用示例

以下是一个简单的示例,展示如何使用 MathTable 创建一个包含数学表达式的表格:

from manim import *  

class MathTableExample(Scene):  
    def construct(self):  
        table_data = [  
            ["x^2", "x^3", "x^4"],  
            ["a + b", "a - b", "a * b"],  
            ["\\frac{1}{2}", "\\sqrt{2}", "\\int_0^1 x^2 \\, dx"]  
        ]  
        
        # 创建表格  
        math_table = MathTable(  
            table_data, 
            include_outer_lines=True,
            element_to_mobject=MathTex  
        )  

        # 显示表格  
        self.add(math_table)  

 运行结果:

4.创建一个包含图形的表格的类【MobjectTable 】

MobjectTable 是 Manim 中用于创建一个包含 Mobject 的表格的类。与其他表格类不同,MobjectTable 允许你在表格中直接使用已经存在的 Mobject,以便在动画中展示更复杂的对象。

参数解释

  1. table:

    • 这是一个二维数组或列表,表示你想在表格中显示的 Mobject。每个子列表或数组构成表格中的一行,内容可以是已有的 Mobject。
  2. element_to_mobject:

    • 这是一个函数,默认值为 lambda 函数,用于将表格中的元素转换为 Mobject。你可以自定义该函数以实现不同的转换逻辑,通常情况下,一个简单的示例是直接返回输入的 Mobject,但如果你想对输入进行一定的处理(如调整大小、颜色等)可以在这里实现。
  3. kwargs:

    • 这部分是其他可选的关键字参数,通常用于配置表格的外观和行为,例如行高、列宽、对齐方式、边框样式等。

使用示例

以下是一个简单的示例,展示如何使用 MobjectTable 创建一个包含不同 Mobject 的表格:

from manim import *  

class MobjectTableExample(Scene):  
    def construct(self):  
        circle = Circle(radius=0.5, color=BLUE)  
        square = Square(side_length=1, color=YELLOW)  
        triangle = Triangle(color=RED)  

        table_data = [  
            [circle, square, triangle],  
            [square.copy().shift(RIGHT), triangle.copy().shift(LEFT), circle.copy().shift(DOWN)],  
        ]  
        
        # 创建表格  
        mobject_table = MobjectTable(  
            table_data, 
            include_outer_lines=True,
            element_to_mobject=lambda x: x  
        )  

        # 显示表格  
        self.add(mobject_table)  

 运行结果:

示例2: 

from manim import *

class MobjectTableExample(Scene):
    def construct(self):
        cross = VGroup(
            Line(UP + LEFT, DOWN + RIGHT),
            Line(UP + RIGHT, DOWN + LEFT),
        )
        a = Circle().set_color(RED).scale(0.5)
        b = cross.set_color(BLUE).scale(0.5)
        t0 = MobjectTable(
            [[a.copy(),b.copy(),a.copy()],
            [b.copy(),a.copy(),a.copy()],
            [a.copy(),b.copy(),b.copy()]]
        )
        line = Line(
            t0.get_corner(DL), t0.get_corner(UR)
        ).set_color(RED)
        self.add(t0, line)

运行结果: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yasen.M

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

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

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

打赏作者

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

抵扣说明:

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

余额充值