add initial drawing balls from a urn animation
This commit is contained in:
parent
d35b0f54d4
commit
036680d610
|
@ -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)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue