Beispiel #1
0
 def get_axis_labels(self, x_label="x", y_label="y"):
     x_axis, y_axis = self.get_axes().split()
     quads = [
         (x_axis, x_label, UP, RIGHT),
         (y_axis, y_label, RIGHT, UP),
     ]
     labels = VGroup()
     for axis, tex, vect, edge in quads:
         label = TexMobject(tex)
         label.add_background_rectangle()
         label.next_to(axis, vect)
         label.to_edge(edge)
         labels.add(label)
     self.axis_labels = labels
     return labels
Beispiel #2
0
    def setup(self):
        prod_tex_strings = [
            "\\left[" + "+".join([f"f({p}^{k})"
                                  for k in range(4)] + ["\\cdots"]) +
            "\\right] \\times" for p in [2, 3, 5, 7]
        ] + ["\\cdots"]
        prod_tex = TexMobject(*prod_tex_strings)
        prod_tex.arrange_submobjects(DOWN, aligned_edge=LEFT, buff=0.5)
        prod_tex.scale(0.8)

        sum_tex_strings = [
            f"f({3*k+1}) + f({3*k+2}) + f({3*k+3}) +" for k in range(3)
        ] + ["f(10) + \\cdots"]
        sum_tex = TexMobject(*sum_tex_strings)
        sum_tex.arrange_submobjects(DOWN, aligned_edge=LEFT, buff=0.25)
        sum_tex.scale(0.8)

        VGroup(prod_tex, sum_tex).arrange_submobjects(RIGHT, aligned_edge=UP)
        VGroup(prod_tex, sum_tex).shift(DOWN)
        prod_tex.to_edge(LEFT, buff=1)
        sum_tex.to_edge(RIGHT, buff=1)

        # It shouldn't be hard-coded, but... hey, it's only a demo.
        k_list = (
            [0, 0, 0, 0],
            [1, 1, 1, 1],
            [2, 1, 1, 1],
            [1, 2, 1, 1],
            [3, 1, 1, 1],
            [1, 1, 2, 1],
            [2, 2, 1, 1],
            [1, 1, 1, 2],
            [4, 1, 1, 1],
            [1, 3, 1, 1],
            [2, 1, 2, 1],
        )

        self.prod_tex = prod_tex
        self.sum_tex = sum_tex
        self.k_list = k_list