Esempio n. 1
0
 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)) )
     '''
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
    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
        )
Esempio n. 5
0
    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)