示例#1
0
 def __init__(self, light, **kwargs):
     if (not isinstance(light, AmbientLight) and not isinstance(light, Spotlight)):
         raise Exception(
             "Only AmbientLights and Spotlights can be switched on")
     LaggedStart.__init__(
         self, FadeIn, light, **kwargs
     )
示例#2
0
 def __init__(self, light, **kwargs):
     if (not isinstance(light, AmbientLight) and not isinstance(light, Spotlight)):
         raise Exception(
             "Only AmbientLights and Spotlights can be switched off")
     light.submobjects = light.submobjects[::-1]
     LaggedStart.__init__(self,
                          FadeOut, light, **kwargs)
     light.submobjects = light.submobjects[::-1]
示例#3
0
 def __init__(self, light, **kwargs):
     if (not isinstance(light, AmbientLight)
             and not isinstance(light, Spotlight)):
         raise Exception(
             "Only AmbientLights and Spotlights can be switched off")
     light.submobjects = light.submobjects[::-1]
     LaggedStart.__init__(self, FadeOut, light, **kwargs)
     light.submobjects = light.submobjects[::-1]
示例#4
0
 def __init__(self, focal_point, **kwargs):
     digest_config(self, kwargs)
     circles = VGroup()
     for x in range(self.n_circles):
         circle = Circle(
             radius=self.big_radius,
             stroke_color=BLACK,
             stroke_width=0,
         )
         circle.move_to(focal_point)
         circle.save_state()
         circle.set_width(self.small_radius * 2)
         circle.set_stroke(self.color, self.start_stroke_width)
         circles.add(circle)
     LaggedStart.__init__(self, ApplyMethod, circles, lambda c:
                          (c.restore, ), **kwargs)
示例#5
0
 def __init__(self, focal_point, **kwargs):
     digest_config(self, kwargs)
     circles = VGroup()
     for x in range(self.n_circles):
         circle = Circle(
             radius=self.big_radius,
             stroke_color=BLACK,
             stroke_width=0,
         )
         circle.move_to(focal_point)
         circle.save_state()
         circle.scale_to_fit_width(self.small_radius * 2)
         circle.set_stroke(self.color, self.start_stroke_width)
         circles.add(circle)
     LaggedStart.__init__(
         self, ApplyMethod, circles,
         lambda c: (c.restore,),
         **kwargs
     )
示例#6
0
    def construct(self):
        morty = Mortimer()
        morty.next_to(ORIGIN, DOWN)

        patreon_logo = PatreonLogo()
        patreon_logo.to_edge(UP)

        n_patrons = len(self.specific_patrons)
        patrons = map(TextMobject, self.specific_patrons)
        num_groups = float(len(patrons)) / self.max_patron_group_size
        proportion_range = np.linspace(0, 1, num_groups + 1)
        indices = (len(patrons) * proportion_range).astype('int')
        patron_groups = [
            VGroup(*patrons[i:j])
            for i, j in zip(indices, indices[1:])
        ]

        for i, group in enumerate(patron_groups):
            left_group = VGroup(*group[:len(group) / 2])
            right_group = VGroup(*group[len(group) / 2:])
            for subgroup, vect in (left_group, LEFT), (right_group, RIGHT):
                subgroup.arrange_submobjects(DOWN, aligned_edge=LEFT)
                subgroup.scale(self.patron_scale_val)
                subgroup.to_edge(vect)

        last_group = None
        for i, group in enumerate(patron_groups):
            anims = []
            if last_group is not None:
                self.play(
                    FadeOut(last_group),
                    morty.look, UP + LEFT
                )
            else:
                anims += [
                    DrawBorderThenFill(patreon_logo),
                ]
            self.play(
                LaggedStart(
                    FadeIn, group,
                    run_time=2,
                ),
                morty.change, "gracious", group.get_corner(UP + LEFT),
                *anims
            )
            self.play(morty.look_at, group.get_corner(DOWN + LEFT))
            self.play(morty.look_at, group.get_corner(UP + RIGHT))
            self.play(morty.look_at, group.get_corner(DOWN + RIGHT))
            self.play(Blink(morty))
            last_group = group
示例#7
0
 def __init__(self, light, **kwargs):
     if (not isinstance(light, AmbientLight)
             and not isinstance(light, Spotlight)):
         raise Exception(
             "Only AmbientLights and Spotlights can be switched on")
     LaggedStart.__init__(self, FadeIn, light, **kwargs)