Compare commits

...

2 Commits

Author SHA1 Message Date
Bibin Muttappillil 036680d610 add initial drawing balls from a urn animation 2022-10-21 18:44:27 +02:00
Bibin Muttappillil d35b0f54d4 small refactoring 2022-10-21 18:44:06 +02:00
2 changed files with 40 additions and 3 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)

View File

@ -1,8 +1,6 @@
from manim import * from manim import *
import networkx as nx class Main(Scene):
class Tree(Scene):
def construct(self): def construct(self):
n = 2**6 n = 2**6
l, r = 42, 59 l, r = 42, 59