def add_element(self, *args, **kwargs): if not args or isinstance(args[0], (Mobject, list)) or not isinstance(args[0], (int, float, tuple)): self.mobject_or_point, self.from_offset, self.to_offset, kwargs = \ generate_args_kwargs(self, args, kwargs, ["mobject_or_point", "from_offset", "to_offset"], [ORIGIN, -0.1, 0.1] ) elif isinstance(args[0], (int, float, tuple)): self.length, self.mobject_or_point = \ generate_args(self, args, [0.2, ORIGIN]) if isinstance(self.length, tuple): self.length = list(self.length) self.from_offset, self.to_offset = to_get_offsets(self.length, 2) kwargs = merge_config_kwargs(self, kwargs, ["length", "mobject_or_point"] ) else: self.mobject_or_point, self.from_offset, self.to_offset, kwargs = \ generate_args_kwargs(self, (), kwargs, ["mobject_or_point", "from_offset", "to_offset"], [ORIGIN, -0.5, 0.5] ) return self.add_points_as_subpaths(np.transpose( to_get_offset_lists( self.mobject_or_point, [self.from_offset, self.to_offset]) ,(1,0,2)) ) '''
def __init__(self, mobject, mobject_or_point="get_center()", *args, **kwargs): self.mobject_or_point = to_get_point(mobject_or_point, mobject) self.args_name = ["point_color", "scale"] self.args = [None, 0] [self.point_color, self.scale] = \ generate_args(self, args, self.args) kwargs = merge_config_kwargs(self, kwargs, self.args_name) super().__init__(mobject, **kwargs)
def __init__(self, *args, **kwargs): self.args_name = \ ["height", "width", "mobject_or_point", "start_angle", "element", "normal_vector"] self.args = \ [2, 4, ORIGIN, None, "edge", "IN"] [self.height, self.width, self.mobject_or_point, self.start_angle, self.element, self.normal_vector] = \ generate_args(self, args, self.args) kwargs = merge_config_kwargs(self, kwargs, self.args_name) self.mobject_or_point = Location(self.mobject_or_point) ul, ur, dr, dl = np.add(np.multiply( (UL, UR, DR, DL), [self.width/2, self.height/2, 0]), self.mobject_or_point) GeomPolygon.__init__(self, ul, ur, dr, dl, **kwargs)
def __init__(self, *args, **kwargs): self.args_name = \ ["side_length", "mobject_or_point", "start_angle", "element", "normal_vector"] self.args = \ [2, ORIGIN, None, "edge", "IN"] [self.side_length, self.mobject_or_point, self.start_angle, self.element, self.normal_vector] = \ generate_args(self, args, self.args) kwargs = merge_config_kwargs(self, kwargs, self.args_name) GeomRectangle.__init__( self, self.side_length, self.side_length, *args[1:], **kwargs )
def __init__(self, n=6, *args, **kwargs): self.args_name = \ ["mobject_or_point", "radius", "start_angle", "element", "normal_vector"] self.args = \ [ORIGIN, 1, None, "point", "OUT"] self.mobject_or_point, self.radius, self.start_angle, self.element, self.normal_vector = \ generate_args(self, args, self.args) kwargs = merge_config_kwargs(self, kwargs, self.args_name) self.mobject_or_point = Location(self.mobject_or_point) if self.element == "point": if self.start_angle is None: if n % 2 == 0: self.start_angle = 0 else: self.start_angle = 90 * DEGREES start_vect = rotate_vector(self.radius*RIGHT, self.start_angle) vertices = np.add(compass_directions(n, start_vect), np.repeat([self.mobject_or_point], n, axis=0)) GeomPolygon.__init__(self, *vertices, **kwargs)