Exemple #1
0
 def __init__(self, **kwargs):
     digest_config(self, kwargs)
     if self.leftmost_tick is None:
         tf = self.tick_frequency
         self.leftmost_tick = tf * np.ceil(self.x_min / tf)
     VMobject.__init__(self, **kwargs)
     if self.include_tip:
         self.add_tip()
Exemple #2
0
 def __init__(self, vmobject=None, **kwargs):
     VMobject.__init__(self, **kwargs)
     if vmobject is not None:
         self.points = np.array(vmobject.points)
         self.match_style(vmobject, family=False)
         self.submobjects = [
             ThreeDVMobject(submob, **kwargs)
             for submob in vmobject.submobjects
         ]
Exemple #3
0
    def __init__(self, number, **kwargs):
        VMobject.__init__(self, **kwargs)
        self.number = number
        self.initial_config = kwargs

        if isinstance(number, complex):
            formatter = self.get_complex_formatter()
        else:
            formatter = self.get_formatter()
        num_string = formatter.format(number)

        shows_zero = np.round(number, self.num_decimal_places) == 0
        if num_string.startswith("-") and shows_zero:
            if self.include_sign:
                num_string = "+" + num_string[1:]
            else:
                num_string = num_string[1:]

        self.add(
            *[SingleStringTexMobject(char, **kwargs) for char in num_string])

        # Add non-numerical bits
        if self.show_ellipsis:
            self.add(SingleStringTexMobject("\\dots"))

        if num_string.startswith("-"):
            minus = self.submobjects[0]
            minus.next_to(self.submobjects[1],
                          LEFT,
                          buff=self.digit_to_digit_buff)

        if self.unit is not None:
            self.unit_sign = SingleStringTexMobject(self.unit,
                                                    color=self.color)
            self.add(self.unit_sign)

        self.arrange_submobjects(buff=self.digit_to_digit_buff,
                                 aligned_edge=DOWN)

        # Handle alignment of parts that should be aligned
        # to the bottom
        for i, c in enumerate(num_string):
            if c == "-" and len(num_string) > i + 1:
                self[i].align_to(self[i + 1], alignment_vect=UP)
            elif c == ",":
                self[i].shift(self[i].get_height() * DOWN / 2)
        if self.unit and self.unit.startswith("^"):
            self.unit_sign.align_to(self, UP)
        #
        if self.include_background_rectangle:
            self.add_background_rectangle()
Exemple #4
0
    def __init__(self, obj, text, brace_direction=DOWN, **kwargs):
        VMobject.__init__(self, **kwargs)
        self.brace_direction = brace_direction
        if isinstance(obj, list): obj = VMobject(*obj)
        self.brace = Brace(obj, brace_direction, **kwargs)

        if isinstance(text, tuple) or isinstance(text, list):
            self.label = self.label_constructor(*text, **kwargs)
        else:
            self.label = self.label_constructor(str(text))
        if self.label_scale != 1: self.label.scale(self.label_scale)

        self.brace.put_at_tip(self.label)
        self.submobjects = [self.brace, self.label]
Exemple #5
0
    def __init__(self, obj, text, brace_direction=DOWN, **kwargs):
        VMobject.__init__(self, **kwargs)
        self.brace_direction = brace_direction
        if isinstance(obj, list):
            obj = VMobject(*obj)
        self.brace = Brace(obj, brace_direction, **kwargs)

        if isinstance(text, tuple) or isinstance(text, list):
            self.label = self.label_constructor(*text, **kwargs)
        else:
            self.label = self.label_constructor(str(text))
        if self.label_scale != 1:
            self.label.scale(self.label_scale)

        self.brace.put_at_tip(self.label)
        self.submobjects = [self.brace, self.label]
Exemple #6
0
    def __init__(self, number, **kwargs):
        VMobject.__init__(self, **kwargs)
        # TODO, make this more ediable with a getter and setter
        self.number = number
        ndp = self.num_decimal_places

        # Build number string
        if isinstance(number, complex):
            num_string = '%.*f%s%.*fi' % (ndp, number.real,
                                          "-" if number.imag < 0 else "+", ndp,
                                          abs(number.imag))
        else:
            num_string = '%.*f' % (ndp, number)
            negative_zero_string = "-%.*f" % (ndp, 0.)
            if num_string == negative_zero_string:
                num_string = num_string[1:]
        self.add(*[TexMobject(char, **kwargs) for char in num_string])

        # Add non-numerical bits
        if self.show_ellipsis:
            self.add(TexMobject("\\dots"))

        if num_string.startswith("-"):
            minus = self.submobjects[0]
            minus.next_to(self.submobjects[1],
                          LEFT,
                          buff=self.digit_to_digit_buff)

        if self.unit is not None:
            self.unit_sign = TexMobject(self.unit, color=self.color)
            self.add(self.unit_sign)

        self.arrange_submobjects(buff=self.digit_to_digit_buff,
                                 aligned_edge=DOWN)

        # Handle alignment of parts that should be aligned
        # to the bottom
        for i, c in enumerate(num_string):
            if c == "-" and len(num_string) > i + 1:
                self[i].align_to(self[i + 1], alignment_vect=UP)
        if self.unit and self.unit.startswith("^"):
            self.unit_sign.align_to(self, UP)
        #
        if self.include_background_rectangle:
            self.add_background_rectangle()
 def __init__(self, matrix, **kwargs):
     """
     Matrix can either either include numbres, tex_strings,
     or mobjects
     """
     VMobject.__init__(self, **kwargs)
     matrix = np.array(matrix, ndmin=1)
     mob_matrix = self.matrix_to_mob_matrix(matrix)
     self.organize_mob_matrix(mob_matrix)
     self.elements = VGroup(*mob_matrix.flatten())
     self.add(self.elements)
     self.add_brackets()
     self.center()
     self.mob_matrix = mob_matrix
     if self.add_background_rectangles_to_entries:
         for mob in self.elements:
             mob.add_background_rectangle()
     if self.include_background_rectangle:
         self.add_background_rectangle()
Exemple #8
0
 def __init__(self, matrix, **kwargs):
     """
     Matrix can either either include numbres, tex_strings, 
     or mobjects
     """
     VMobject.__init__(self, **kwargs)
     matrix = np.array(matrix)
     if matrix.ndim == 1:
         matrix = matrix.reshape((matrix.size, 1))
     if not isinstance(matrix[0][0], Mobject):
         matrix = matrix.astype("string")
         matrix = self.string_matrix_to_mob_matrix(matrix)
     self.organize_mob_matrix(matrix)
     self.add(*matrix.flatten())
     self.add_brackets()
     self.center()
     self.mob_matrix = matrix
     if self.add_background_rectangles:
         for mob in matrix.flatten():
             mob.add_background_rectangle()
Exemple #9
0
 def __init__(self, matrix, **kwargs):
     """
     Matrix can either either include numbres, tex_strings,
     or mobjects
     """
     VMobject.__init__(self, **kwargs)
     matrix = np.array(matrix)
     if matrix.ndim == 1:
         matrix = matrix.reshape((matrix.size, 1))
     mob_matrix = self.matrix_to_mob_matrix(matrix)
     self.organize_mob_matrix(mob_matrix)
     self.elements = VGroup(*mob_matrix.flatten())
     self.add(self.elements)
     self.add_brackets()
     self.center()
     self.mob_matrix = mob_matrix
     if self.add_background_rectangles_to_entries:
         for mob in self.elements:
             mob.add_background_rectangle()
     if self.include_background_rectangle:
         self.add_background_rectangle()
Exemple #10
0
 def __init__(self, function, **kwargs):
     self.function = function
     VMobject.__init__(self, **kwargs)
Exemple #11
0
 def __init__(self, covered_mob, **kwargs):
     self.covered_mob = covered_mob
     VMobject.__init__(self, **kwargs)
 def __init__(self, **kwargs):
     digest_config(self, kwargs, locals())
     self.ensure_valid_file()
     VMobject.__init__(self, **kwargs)
     self.move_into_position()
Exemple #13
0
 def __init__(self, *vertices, **kwargs):
     assert len(vertices) > 1
     digest_locals(self)
     VMobject.__init__(self, **kwargs)
Exemple #14
0
 def __init__(self, *args, **kwargs):
     VMobject.__init__(self, *args, **kwargs)
     shade_in_3d(self)
Exemple #15
0
 def __init__(self, walk_string, **kwargs):
     digest_config(self, kwargs, locals())
     VMobject.__init__(self, **kwargs)
     self.check_string(walk_string)
Exemple #16
0
 def __init__(self, angle, **kwargs):
     self.angle = angle
     VMobject.__init__(self, **kwargs)
 def __init__(self, *args, **kwargs):
     VMobject.__init__(self, *args, **kwargs)
     shade_in_3d(self)
Exemple #18
0
 def __init__(self, vmobject=None, **kwargs):
     VMobject.__init__(self, **kwargs)
     if vmobject is not None:
         self.points = np.array(vmobject.points)
         self.match_style(vmobject)
         self.submobjects = map(ThreeDVMobject, vmobject.submobjects)
Exemple #19
0
 def __init__(self, start, end, **kwargs):
     digest_config(self, kwargs)
     self.set_start_and_end(start, end)
     VMobject.__init__(self, **kwargs)
Exemple #20
0
 def __init__(self, rows, columns, **kwargs):
     digest_config(self, kwargs, locals())
     VMobject.__init__(self, **kwargs)
Exemple #21
0
 def __init__(self, order=570, **kwargs):
     digest_config(self, kwargs, locals())
     VMobject.__init__(self, **kwargs)
Exemple #22
0
 def __init__(self, file_name=None, **kwargs):
     digest_config(self, kwargs)
     self.file_name = self.file_name or file_name
     self.ensure_valid_file()
     VMobject.__init__(self, **kwargs)
     self.move_into_position()
Exemple #23
0
 def __init__(self, start, end, **kwargs):
     digest_config(self, kwargs)
     self.set_start_and_end(start, end)
     VMobject.__init__(self, **kwargs)
Exemple #24
0
 def __init__(self, mobject, **kwargs):
     VMobject.__init__(self, **kwargs)
     self.mobject = mobject
     self.submobjects = self.get_eyes().submobjects
Exemple #25
0
 def __init__(self, *vertices, **kwargs):
     assert len(vertices) > 1
     digest_locals(self)
     VMobject.__init__(self, **kwargs)
Exemple #26
0
 def __init__(self, **kwargs):
     digest_config(self, kwargs, locals())
     self.ensure_valid_file()
     VMobject.__init__(self, **kwargs)
     self.move_into_position()
Exemple #27
0
 def __init__(self, points, **kwargs):
     VMobject.__init__(self, **kwargs)
     self.set_points(points)
Exemple #28
0
 def __init__(self, path_string, **kwargs):
     digest_locals(self)
     VMobject.__init__(self, **kwargs)
 def __init__(self, mobject, **kwargs):
     VMobject.__init__(self, **kwargs)
     self.mobject = mobject
     self.submobjects = self.get_eyes().submobjects
Exemple #30
0
 def __init__(self, angle, **kwargs):
     self.angle = angle
     VMobject.__init__(self, **kwargs)
Exemple #31
0
 def __init__(self, **kwargs):
     VMobject.__init__(self, **kwargs)
     self.add_iris_back()
     self.add_spikes()
     self.add_pupil()
Exemple #32
0
 def __init__(self, points, **kwargs):
     VMobject.__init__(self, **kwargs)
     self.set_points(points)
Exemple #33
0
 def __init__(self, body, **kwargs):
     VMobject.__init__(self, **kwargs)
     self.body = body
     eyes = self.create_eyes()
     self.become(eyes, copy_submobjects=False)
Exemple #34
0
 def __init__(self, rows, columns, **kwargs):
     digest_config(self, kwargs, locals())
     VMobject.__init__(self, **kwargs)
 def __init__(self, path_string, **kwargs):
     digest_locals(self)
     VMobject.__init__(self, **kwargs)