예제 #1
0
파일: brace.py 프로젝트: Akaj-lab/manim
    def __init__(self,
                 mobject: Mobject,
                 direction: np.ndarray = DOWN,
                 **kwargs):
        digest_config(self, kwargs, locals())
        angle = -math.atan2(*direction[:2]) + PI
        mobject.rotate(-angle, about_point=ORIGIN)
        left = mobject.get_corner(DOWN + LEFT)
        right = mobject.get_corner(DOWN + RIGHT)
        target_width = right[0] - left[0]

        super().__init__(self.tex_string, **kwargs)
        self.tip_point_index = np.argmin(self.get_all_points()[:, 1])
        self.set_initial_width(target_width)
        self.shift(left - self.get_corner(UP + LEFT) + self.buff * DOWN)
        for mob in mobject, self:
            mob.rotate(angle, about_point=ORIGIN)
예제 #2
0
 def get_corner_dots(self, mobject: Mobject) -> Mobject:
     dots = DotCloud(**self.corner_dot_config)
     radius = self.corner_dot_config["radius"]
     if mobject.get_depth() < 1e-2:
         vects = [DL, UL, UR, DR]
     else:
         vects = np.array(list(it.product(*3 * [[-1, 1]])))
     dots.add_updater(lambda d: d.set_points(
         [mobject.get_corner(v) + v * radius for v in vects]))
     return dots