mirror of
https://github.com/3b1b/manim.git
synced 2025-08-05 16:49:03 +00:00
Beginning clacks_solution2 animations
This commit is contained in:
parent
bfc4251d6d
commit
43a583fc4f
4 changed files with 92 additions and 0 deletions
63
active_projects/clacks/solution2/block_collision_scenes.py
Normal file
63
active_projects/clacks/solution2/block_collision_scenes.py
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
from big_ol_pile_of_manim_imports import *
|
||||||
|
from active_projects.clacks.question import BlocksAndWallExample
|
||||||
|
|
||||||
|
|
||||||
|
class PreviousTwoVideos(BlocksAndWallExample):
|
||||||
|
CONFIG = {
|
||||||
|
"sliding_blocks_config": {
|
||||||
|
"block1_config": {
|
||||||
|
"mass": 1e4,
|
||||||
|
"velocity": -2,
|
||||||
|
"width": 3,
|
||||||
|
},
|
||||||
|
"block2_config": {
|
||||||
|
"width": 3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"wait_time": 15,
|
||||||
|
}
|
||||||
|
|
||||||
|
def setup(self):
|
||||||
|
videos = Group(
|
||||||
|
ImageMobject
|
||||||
|
)
|
||||||
|
|
||||||
|
name_mobs = VGroup(*map(TextMobject, names))
|
||||||
|
name_mobs.set_stroke(BLACK, 3, background=True)
|
||||||
|
name_mobs.set_fill(LIGHT_GREY, 1)
|
||||||
|
name_mobs.set_sheen(3, UL)
|
||||||
|
name_mobs.scale(2)
|
||||||
|
configs = [
|
||||||
|
self.sliding_blocks_config["block1_config"],
|
||||||
|
self.sliding_blocks_config["block2_config"],
|
||||||
|
]
|
||||||
|
for name_mob, config in zip(name_mobs, configs):
|
||||||
|
config["width"] = name_mob.get_width()
|
||||||
|
self.name_mobs = name_mobs
|
||||||
|
|
||||||
|
super().setup()
|
||||||
|
|
||||||
|
def add_blocks(self):
|
||||||
|
super().add_blocks()
|
||||||
|
blocks = self.blocks
|
||||||
|
name_mobs = self.name_mobs
|
||||||
|
|
||||||
|
blocks.fade(1)
|
||||||
|
|
||||||
|
def update_name_mobs(name_mobs):
|
||||||
|
for name_mob, block in zip(name_mobs, self.blocks):
|
||||||
|
name_mob.move_to(block)
|
||||||
|
target_y = block.get_bottom()[1] + SMALL_BUFF
|
||||||
|
curr_y = name_mob[0].get_bottom()[1]
|
||||||
|
name_mob.shift((target_y - curr_y) * UP)
|
||||||
|
|
||||||
|
name_mobs.add_updater(update_name_mobs)
|
||||||
|
self.add(name_mobs)
|
||||||
|
|
||||||
|
clack_y = self.name_mobs[1].get_center()[1]
|
||||||
|
for location, time in self.clack_data:
|
||||||
|
location[1] = clack_y
|
||||||
|
|
||||||
|
for block, name_mob in zip(blocks, name_mobs):
|
||||||
|
block.label.next_to(name_mob, UP)
|
||||||
|
block.label.set_fill(YELLOW, opacity=1)
|
6
active_projects/clacks/solution2/pi_creature_scenes.py
Normal file
6
active_projects/clacks/solution2/pi_creature_scenes.py
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
from big_ol_pile_of_manim_imports import *
|
||||||
|
|
||||||
|
|
||||||
|
class NewSceneName(TeacherStudentsScene):
|
||||||
|
def construct(self):
|
||||||
|
pass
|
17
active_projects/clacks/solution2/simple_scenes.py
Normal file
17
active_projects/clacks/solution2/simple_scenes.py
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
from big_ol_pile_of_manim_imports import *
|
||||||
|
from active_projects.clacks.question import BlocksAndWallExample
|
||||||
|
|
||||||
|
|
||||||
|
class PreviousTwoVideos(BlocksAndWallExample):
|
||||||
|
CONFIG = {
|
||||||
|
"sliding_blocks_config": {
|
||||||
|
"block1_config": {
|
||||||
|
"mass": 1e0,
|
||||||
|
"velocity": -2,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wait_time": 15,
|
||||||
|
}
|
||||||
|
|
||||||
|
def construct(self):
|
||||||
|
pass
|
6
active_projects/clacks_solution2.py
Normal file
6
active_projects/clacks_solution2.py
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
from active_projects.clacks.solution2 import block_collision_scenes
|
||||||
|
|
||||||
|
OUTPUT_DIRECTORY = "clacks_solution2"
|
||||||
|
ALL_SCENE_CLASSES = [
|
||||||
|
block_collision_scenes.PreviousTwoVideos
|
||||||
|
]
|
Loading…
Add table
Reference in a new issue