コード例 #1
0
ファイル: arc.py プロジェクト: jsonvillanueva/manim
    def __init__(
        self,
        label: str | SingleStringMathTex | Text | Tex,
        radius: float | None = None,
        **kwargs,
    ) -> None:
        if isinstance(label, str):
            from manim import MathTex

            rendered_label = MathTex(label, color=BLACK)
        else:
            rendered_label = label

        if radius is None:
            radius = 0.1 + max(rendered_label.width, rendered_label.height) / 2
        super().__init__(radius=radius, **kwargs)
        rendered_label.move_to(self.get_center())
        self.add(rendered_label)
コード例 #2
0
ファイル: geometry.py プロジェクト: alopez545/manim
    def __init__(self, label, radius=None, **kwargs) -> None:
        if isinstance(label, str):
            from manim import MathTex

            rendered_label = MathTex(label, color=BLACK)
        else:
            rendered_label = label

        if radius is None:
            radius = (0.1 + max(rendered_label.get_width(),
                                rendered_label.get_height()) / 2)
        Dot.__init__(self, radius=radius, **kwargs)
        rendered_label.move_to(self.get_center())
        self.add(rendered_label)
コード例 #3
0
    def __init__(self,
                 label,
                 width=None,
                 height=None,
                 width_buff=0.1,
                 height_buff=0.1,
                 color=WHITE,
                 fill_color=WHITE,
                 fill_opacity=1.0,
                 corner_radius=0.1,
                 tip_direction=None,
                 tip_height=0.3,
                 tip_width=0.3,
                 **kwargs) -> None:
        if isinstance(label, str):
            from manim import MathTex

            rendered_label = MathTex(label, color=BLACK)
        else:
            rendered_label = label

        if width is None:
            width = (2 * width_buff + rendered_label.get_width())
        if height is None:
            height = (2 * height_buff + rendered_label.get_height())

        RoundedRectangle.__init__(self,
                                  width=width,
                                  height=height,
                                  color=color,
                                  fill_color=fill_color,
                                  fill_opacity=fill_opacity,
                                  corner_radius=corner_radius,
                                  **kwargs)
        rendered_label.move_to(self.get_center())
        self.add(rendered_label)

        if (tip_direction is not None):
            self.set_tip(tip_direction=tip_direction,
                         tip_height=tip_height,
                         tip_width=tip_width,
                         color=color,
                         fill_opacity=fill_opacity,
                         **kwargs)
コード例 #4
0
def test_font_size():
    """Test that tex_mobject classes return
    the correct font_size value after being scaled."""
    string = MathTex(0).scale(0.3)

    assert round(string.font_size, 5) == 14.4
コード例 #5
0
def test_MathTex():
    MathTex("a^2 + b^2 = c^2")
    assert Path(config.media_dir, "Tex", "3879f6b03bc495cd.svg").exists()
コード例 #6
0
def test_double_braces_testing(text_input, length_sub):
    t1 = MathTex(text_input)
    assert len(t1.submobjects) == length_sub
コード例 #7
0
def test_font_size_vs_scale():
    """Test that scale produces the same results as .scale()"""
    num = MathTex(0, font_size=12)
    num_scale = MathTex(0).scale(1 / 4)

    assert num.height == num_scale.height
コード例 #8
0
ファイル: test_texmobject.py プロジェクト: SamuilYu/manim
def test_MathTex(temp_media_dir):
    MathTex("a^2 + b^2 = c^2")
    assert (temp_media_dir / "Tex" / "3879f6b03bc495cd.svg").exists()
コード例 #9
0
ファイル: test_texmobject.py プロジェクト: SamuilYu/manim
def test_double_braces_testing(temp_media_dir, text_input, length_sub):
    t1 = MathTex(text_input)
    len(t1.submobjects) == length_sub
コード例 #10
0
def test_MathTex(using_opengl_renderer):
    MathTex("a^2 + b^2 = c^2")
    assert Path(config.media_dir, "Tex", "3879f6b03bc495cd.svg").exists()
コード例 #11
0
def test_double_braces_testing(using_opengl_renderer, text_input, length_sub):
    t1 = MathTex(text_input)
    assert len(t1.submobjects) == length_sub
コード例 #12
0
    def construct(self):
        matrix1 = Matrix(
            m1,
            v_buff=1.3,
            h_buff=0.8,
            bracket_h_buff=SMALL_BUFF,
            bracket_v_buff=SMALL_BUFF)

        matrix1.set_color(DEFAULT_COLOR)

        matrix1.get_entries()[0].set_color(RECT_COLOR)
        matrix1.get_entries()[-1].set_color(RECT_COLOR)

        self.add(matrix1)

        matrix2 = Matrix(
            m2,
            v_buff=1.3,
            h_buff=0.8,
            bracket_h_buff=SMALL_BUFF,
            bracket_v_buff=SMALL_BUFF)
        matrix2.set_color(DEFAULT_COLOR)
        self.add(matrix2)

        equals = MathTex(r'=')
        self.add(equals)

        m3 = (m1@m2)
        matrix3 = Matrix(
            m3,
            v_buff=1.3,
            h_buff=0.8,
            bracket_h_buff=SMALL_BUFF,
            bracket_v_buff=SMALL_BUFF)
        matrix3.set_color(DEFAULT_COLOR)

        # args = [BLACK]*m3.shape[1]
        # matrix3.set_column_colors(*args)

        for i in matrix3.get_entries():
            i.set_opacity(0)

        self.add(matrix3)

        g = Group(matrix1, matrix2, equals, matrix3).arrange(buff=1).shift(UP)
        g.set_color(DEFAULT_COLOR)
        self.add(g)

        i = 0
        for m1_row in matrix1.get_rows():
            for m2_column in matrix2.get_columns():
                rect_1 = SurroundingRectangle(m1_row).set_stroke(color=RECT_COLOR)
                rect_2 = SurroundingRectangle(m2_column).set_stroke(color=RECT_COLOR)

                self.play(Create(rect_1))
                self.wait()

                self.play(ReplacementTransform(rect_1, rect_2))

                math_strings = []
                values_to_sum = []
                for m1_val, m2_val in zip(m1_row, m2_column):
                    val_left = int(m1_val.get_tex_string())
                    val_right = int(m2_val.get_tex_string())
                    values_to_sum.append(val_left * val_right)
                    text_left = m1_val.get_tex_string()
                    text_right = m2_val.get_tex_string()

                    if val_left < 0:
                        text_left = f'({text_left})'

                    if val_right < 0:
                        text_right = f'({text_right})'

                    math_strings.extend([text_left, " \\times ", text_right, " + "])

                math_strings = math_strings[:-1]
                math_strings.extend([" = ", sum(values_to_sum)])

                ds_m = MathTex(*math_strings)
                ds_m.set_color(BLACK)

                offset = 0
                for j in range(m1.shape[0]):
                    pos = j + offset
                    # ds_m[pos].set_color(M1_COLOR)
                    # ds_m[pos + 2].set_color(M2_COLOR)

                    offset += 3

                ds_m[-1].set_opacity(0)
                # ds_m[-1].set_color(CALCULATED_COLOR)

                ds_m.shift(2 * DOWN)

                self.play(ReplacementTransform(rect_1, rect_2), Write(ds_m))

                self.wait()

                rect_3 = SurroundingRectangle(matrix3.get_entries()[i]).set_color(RECT_COLOR)
                # matrix3.get_entries()[i].set_color(CALCULATED_COLOR)
                self.play(
                    ReplacementTransform(rect_2, rect_3),
                    ApplyMethod(matrix3.get_entries()[i].set_opacity, 1),
                    ApplyMethod(ds_m[-1].set_opacity, 1)
                )

                self.wait()

                self.remove(ds_m)
                self.remove(rect_3)

                m1_row.set_color(BLACK)
                m2_column.set_color(BLACK)

                i += 1
        self.wait()