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()
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 ]
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()
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]
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()
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()
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()
def __init__(self, function, **kwargs): self.function = function VMobject.__init__(self, **kwargs)
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()
def __init__(self, *vertices, **kwargs): assert len(vertices) > 1 digest_locals(self) VMobject.__init__(self, **kwargs)
def __init__(self, *args, **kwargs): VMobject.__init__(self, *args, **kwargs) shade_in_3d(self)
def __init__(self, walk_string, **kwargs): digest_config(self, kwargs, locals()) VMobject.__init__(self, **kwargs) self.check_string(walk_string)
def __init__(self, angle, **kwargs): self.angle = angle VMobject.__init__(self, **kwargs)
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)
def __init__(self, start, end, **kwargs): digest_config(self, kwargs) self.set_start_and_end(start, end) VMobject.__init__(self, **kwargs)
def __init__(self, rows, columns, **kwargs): digest_config(self, kwargs, locals()) VMobject.__init__(self, **kwargs)
def __init__(self, order=570, **kwargs): digest_config(self, kwargs, locals()) VMobject.__init__(self, **kwargs)
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()
def __init__(self, mobject, **kwargs): VMobject.__init__(self, **kwargs) self.mobject = mobject self.submobjects = self.get_eyes().submobjects
def __init__(self, points, **kwargs): VMobject.__init__(self, **kwargs) self.set_points(points)
def __init__(self, path_string, **kwargs): digest_locals(self) VMobject.__init__(self, **kwargs)
def __init__(self, **kwargs): VMobject.__init__(self, **kwargs) self.add_iris_back() self.add_spikes() self.add_pupil()
def __init__(self, body, **kwargs): VMobject.__init__(self, **kwargs) self.body = body eyes = self.create_eyes() self.become(eyes, copy_submobjects=False)