def fade_to(self, color, alpha, family=True): if self.get_num_points() > 0: new_color = interpolate_color(self.get_color(), color, alpha) self.set_color(new_color, family=False) if family: for submob in self.submobjects: submob.fade_to(color, alpha) return self
def fade_to(self, color, alpha, family=True): if self.get_num_points() > 0: new_color = interpolate_color( self.get_color(), color, alpha ) self.set_color(new_color, family=False) if family: for submob in self.submobjects: submob.fade_to(color, alpha) return self
def set_submobject_colors_by_radial_gradient(self, center=None, radius=1, inner_color=WHITE, outer_color=BLACK): if center is None: center = self.get_center() for mob in self.family_members_with_points(): t = get_norm(mob.get_center() - center) / radius t = min(t, 1) mob_color = interpolate_color(inner_color, outer_color, t) mob.set_color(mob_color, family=False) return self
def set_submobject_colors_by_radial_gradient(self, center=None, radius=1, inner_color=WHITE, outer_color=BLACK): if center is None: center = self.get_center() for mob in self.family_members_with_points(): t = get_norm(mob.get_center() - center) / radius t = min(t, 1) mob_color = interpolate_color(inner_color, outer_color, t) mob.set_color(mob_color, family=False) return self
def return_updater(mob, alpha): dx = interpolate(-PI / 2, PI / 2, alpha) mob.become(mob.init_state) mob.set_width(rectangle_width * np.cos(dx), stretch=True) # dx should not be zero sign = -abs(dx) / (dx + 0.00000000001) direction = LEFT * sign reference_line = Line( rectangle.init_state.get_corner(UP + direction), rectangle.init_state.get_corner(DOWN + direction)) mob.next_to(reference_line, -direction, buff=0) opacity = self.init_opacity + (self.max_opacity - self.init_opacity) * np.cos(dx) mob.set_style(fill_opacity=opacity) mob.set_color( interpolate_color(self.rectangle_kwargs["color"], midle_color, np.cos(dx)))