Exemplo n.º 1
0
 def generate_points(self):
     random.seed(self.random_seed)
     modes = get_all_pi_creature_modes()
     seed = PiCreature(mode=self.start_mode)
     seed.scale_to_fit_height(self.height)
     seed.to_edge(DOWN)
     creatures = [seed]
     self.add(VGroup(seed))
     for x in range(self.order):
         new_creatures = []
         for creature in creatures:
             for eye, vect in zip(creature.eyes, [LEFT, RIGHT]):
                 new_creature = PiCreature(
                     mode=random.choice(modes)
                 )
                 new_creature.scale_to_fit_height(
                     self.scale_val * eye.get_height()
                 )
                 new_creature.next_to(
                     eye, vect,
                     buff=0,
                     aligned_edge=DOWN
                 )
                 new_creatures.append(new_creature)
             creature.look_at(random.choice(new_creatures))
         self.add_to_back(VGroup(*new_creatures))
         creatures = new_creatures
Exemplo n.º 2
0
 def generate_points(self):
     random.seed(self.random_seed)
     modes = get_all_pi_creature_modes()
     seed = PiCreature(mode=self.start_mode)
     seed.set_height(self.height)
     seed.to_edge(DOWN)
     creatures = [seed]
     self.add(VGroup(seed))
     for x in range(self.order):
         new_creatures = []
         for creature in creatures:
             for eye, vect in zip(creature.eyes, [LEFT, RIGHT]):
                 new_creature = PiCreature(mode=random.choice(modes))
                 new_creature.set_height(self.scale_val * eye.get_height())
                 new_creature.next_to(eye, vect, buff=0, aligned_edge=DOWN)
                 new_creatures.append(new_creature)
             creature.look_at(random.choice(new_creatures))
         self.add_to_back(VGroup(*new_creatures))
         creatures = new_creatures
Exemplo n.º 3
0
    def get_face_card_design(self, value, symbol):
        from for_3b1b_videos.pi_creature import PiCreature
        sub_rect = Rectangle(
            stroke_color = BLACK,
            fill_opacity = 0,
            height = 0.9*self.get_height(),
            width = 0.6*self.get_width(),
        )
        sub_rect.move_to(self)

        # pi_color = average_color(symbol.get_color(), GREY)
        pi_color = symbol.get_color()
        pi_mode = {
            "J" : "plain",
            "Q" : "thinking",
            "K" : "hooray"
        }[value]
        pi_creature = PiCreature(
            mode = pi_mode,
            color = pi_color,
        )
        pi_creature.scale_to_fit_width(0.8*sub_rect.get_width())
        if value in ["Q", "K"]:
            prefix = "king" if value == "K" else "queen"
            crown = SVGMobject(file_name = prefix + "_crown")
            crown.set_stroke(width = 0)
            crown.set_fill(YELLOW, 1)
            crown.stretch_to_fit_width(0.5*sub_rect.get_width())
            crown.stretch_to_fit_height(0.17*sub_rect.get_height())
            crown.move_to(pi_creature.eyes.get_center(), DOWN)
            pi_creature.add_to_back(crown)
            to_top_buff = 0
        else:
            to_top_buff = SMALL_BUFF*sub_rect.get_height()
        pi_creature.next_to(sub_rect.get_top(), DOWN, to_top_buff)
        # pi_creature.shift(0.05*sub_rect.get_width()*RIGHT)

        pi_copy = pi_creature.copy()
        pi_copy.rotate(np.pi, about_point = sub_rect.get_center())

        return VGroup(sub_rect, pi_creature, pi_copy)
Exemplo n.º 4
0
    def get_face_card_design(self, value, symbol):
        from for_3b1b_videos.pi_creature import PiCreature
        sub_rect = Rectangle(
            stroke_color=BLACK,
            fill_opacity=0,
            height=0.9 * self.get_height(),
            width=0.6 * self.get_width(),
        )
        sub_rect.move_to(self)

        # pi_color = average_color(symbol.get_color(), GREY)
        pi_color = symbol.get_color()
        pi_mode = {
            "J": "plain",
            "Q": "thinking",
            "K": "hooray"
        }[value]
        pi_creature = PiCreature(
            mode=pi_mode,
            color=pi_color,
        )
        pi_creature.scale_to_fit_width(0.8 * sub_rect.get_width())
        if value in ["Q", "K"]:
            prefix = "king" if value == "K" else "queen"
            crown = SVGMobject(file_name=prefix + "_crown")
            crown.set_stroke(width=0)
            crown.set_fill(YELLOW, 1)
            crown.stretch_to_fit_width(0.5 * sub_rect.get_width())
            crown.stretch_to_fit_height(0.17 * sub_rect.get_height())
            crown.move_to(pi_creature.eyes.get_center(), DOWN)
            pi_creature.add_to_back(crown)
            to_top_buff = 0
        else:
            to_top_buff = SMALL_BUFF * sub_rect.get_height()
        pi_creature.next_to(sub_rect.get_top(), DOWN, to_top_buff)
        # pi_creature.shift(0.05*sub_rect.get_width()*RIGHT)

        pi_copy = pi_creature.copy()
        pi_copy.rotate(np.pi, about_point=sub_rect.get_center())

        return VGroup(sub_rect, pi_creature, pi_copy)