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