add initial drawing balls from a urn animation

This commit is contained in:
Bibin Muttappillil 2022-10-21 18:44:27 +02:00
parent d35b0f54d4
commit 036680d610
1 changed files with 39 additions and 0 deletions

39
math/combinatorics.py Normal file
View File

@ -0,0 +1,39 @@
from manim import *
import random
class Urn(Square):
def __init__(self):
Square.__init__(self, side_length=1.0, fill_color=GREY, fill_opacity=1.0)
class Balls(VGroup):
colors = [BLUE, GREEN, YELLOW, PURPLE, RED, GRAY, MAROON, ORANGE, TEAL]
def __init__(self, n):
cols = Balls.colors
random.shuffle(cols)
cols = cols[:n]
super().__init__(*[LabeledDot(str(l), color=c) for l, c in zip(list(range(n)), cols)])
class Main(Scene):
def construct(self):
urn = Urn().shift(3*LEFT)
n = 9
k = 6
balls = Balls(n)
left = list(range(n))
random.shuffle(left)
left = left[:k]
for d in left:
self.add(balls[d].move_to(urn), urn)
self.play(balls[d].animate.shift(DOWN))
self.play(urn.animate.shift(RIGHT))
self.wait(2)