mirror of
https://github.com/3b1b/manim.git
synced 2025-08-05 16:49:03 +00:00
108 lines
2.9 KiB
Python
108 lines
2.9 KiB
Python
from big_ol_pile_of_manim_imports import *
|
|
from active_projects.ode.part1.shared_constructs import *
|
|
|
|
|
|
class SomeOfYouWatching(TeacherStudentsScene):
|
|
CONFIG = {
|
|
"camera_config": {
|
|
"background_color": DARKER_GREY,
|
|
}
|
|
}
|
|
|
|
def construct(self):
|
|
screen = self.screen
|
|
screen.scale(1.25, about_edge=UL)
|
|
screen.set_fill(BLACK, 1)
|
|
self.add(screen)
|
|
|
|
self.teacher.change("raise_right_hand")
|
|
for student in self.students:
|
|
student.change("pondering", screen)
|
|
|
|
self.student_says(
|
|
"Well...yeah",
|
|
target_mode="tease"
|
|
)
|
|
self.wait(3)
|
|
|
|
|
|
class FormulasAreLies(PiCreatureScene):
|
|
def construct(self):
|
|
you = self.pi_creature
|
|
t2c = {
|
|
"{L}": BLUE,
|
|
"{g}": YELLOW,
|
|
"\\theta_0": WHITE,
|
|
"\\sqrt{\\,": WHITE,
|
|
}
|
|
kwargs = {"tex_to_color_map": t2c}
|
|
period_eq = TexMobject(
|
|
"\\text{Period} = 2\\pi \\sqrt{\\,{L} / {g}}",
|
|
**kwargs
|
|
)
|
|
theta_eq = TexMobject(
|
|
"\\theta(t) = \\theta_0 \\cos\\left("
|
|
"\\sqrt{\\,{L} / {g}} \\cdot t"
|
|
"\\right)",
|
|
**kwargs
|
|
)
|
|
equations = VGroup(theta_eq, period_eq)
|
|
equations.arrange(DOWN, buff=LARGE_BUFF)
|
|
|
|
for eq in period_eq, theta_eq:
|
|
i = eq.index_of_part_by_tex("\\sqrt")
|
|
eq.sqrt_part = eq[i:i + 4]
|
|
|
|
theta0 = theta_eq.get_part_by_tex("\\theta_0")
|
|
theta0_words = TextMobject("Starting angle")
|
|
theta0_words.next_to(theta0, UL)
|
|
theta0_words.shift(UP + 0.5 * RIGHT)
|
|
arrow = Arrow(
|
|
theta0_words.get_bottom(),
|
|
theta0,
|
|
color=WHITE,
|
|
tip_length=0.25,
|
|
)
|
|
|
|
bubble = SpeechBubble()
|
|
bubble.pin_to(you)
|
|
bubble.write("Lies!")
|
|
bubble.content.scale(2)
|
|
bubble.resize_to_content()
|
|
|
|
self.add(period_eq)
|
|
you.change("pondering", period_eq)
|
|
self.wait()
|
|
theta_eq.remove(*theta_eq.sqrt_part)
|
|
self.play(
|
|
TransformFromCopy(
|
|
period_eq.sqrt_part,
|
|
theta_eq.sqrt_part,
|
|
),
|
|
FadeIn(theta_eq)
|
|
)
|
|
theta_eq.add(*theta_eq.sqrt_part)
|
|
self.play(
|
|
FadeInFrom(theta0_words, LEFT),
|
|
GrowArrow(arrow),
|
|
)
|
|
self.wait()
|
|
self.play(you.change, "confused")
|
|
self.wait(0)
|
|
self.play(
|
|
you.change, "angry",
|
|
ShowCreation(bubble),
|
|
FadeInFromPoint(bubble.content, you.mouth),
|
|
equations.to_edge, LEFT,
|
|
FadeOut(arrow),
|
|
FadeOut(theta0_words),
|
|
)
|
|
self.wait()
|
|
|
|
def create_pi_creature(self):
|
|
return You().flip().to_corner(DR)
|
|
|
|
|
|
class NewSceneName(Scene):
|
|
def construct(self):
|
|
pass
|