πΎ Π Π΄Π²ΡΡ
ΡΠ²Π΅ΠΆΠΈΡ
Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΡΠΎΠ»ΠΈΠΊΠ°Ρ
(
https://www.youtube.com/shorts/3KxATaDQ59A, https://www.youtube.com/shorts/QWrGUD11w0g) ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π» ΡΠΈΠ·ΠΈΠΊΡ Π² . ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ, Ρ
ΠΎΡΡ ΠΈ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ dt-Π°ΠΏΠ΄Π΅ΠΉΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π» Π² , Π»ΠΈΠ±ΠΎ alpha-Π°ΠΏΠ΄Π΅ΠΉΡΠ΅ΡΡ β Π΄Π΅Π»ΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ Π½ΠΈΠΆΠ΅. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΎΡΠΌΠΈΡΡ Π² 10-15 ΡΡΡΠΎΠΊ, Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π΄Π»Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠΊΠ» for i in range(40) Π΄Π»Ρ ΠΊΡΠ°ΡΠΎΡΡ: ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΆΡΠ»ΡΡΠ΅ ΡΠ»Π΅ΠΉΡΡ. Π’Π°ΠΊΠΆΠ΅ Π»ΡΠ±ΠΈΡΠ΅Π»ΡΠΌ Manim ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ
https://t.me/compmathweekly ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Π΄ΠΎΠ΄Π΅ΠΊΠ°ΡΠ΄ΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΡΡ ΠΏΠΎ ΡΠ΅Π³Ρ #manim
from manim import *
class HomeworkGravity(Scene):
def construct(self):
g = 9.8
v = 15
run_time = 3
theta = 55
notes = Tex(f"$v_0={v}$ m/s", rf"$\theta={theta}^\circ$")
theta *= DEGREES
self.add(notes.arrange(DOWN))
ball = Circle(0.3).set_fill(WHITE, 1).to_edge(DL, -1)
ball.set_stroke(YELLOW, 1)
ball.start = ball.get_center()
tails = VGroup()
for i in range(40):
def get_traced_point(i=i):
return ball.point_from_proportion(i / 40)
length = np.random.uniform(0.25, 1)
tail = TracedPath(get_traced_point, dissipating_time=length)
tail.set_stroke(YELLOW, 1, [1,0])
tails.add(tail)
def apply_gravity(mob, alpha):
x_0, y_0 = ball.start[:2]
t = run_time * alpha
x = x_0 + v * np.cos(theta) * t
y = y_0 + v * np.sin(theta) * t - 0.5 * g * t ** 2
pos = np.array((x, y, 0))
mob.move_to(pos)
self.add(ball, tails)
self.play(
UpdateFromAlphaFunc(ball, apply_gravity),
rate_func=linear,
run_time=run_time,
)