/
IT-Legion
/
animations_in_python
Обзор
Документация
Войти
/
IT-Legion
/
animations_in_python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
new_file
74 строки
3 KB
IT-Legion
create: new_file
28 апр 2026, 01:04
Верифицирован
28 апр 2026, 01:04
34f4752
Код
Авторство
О чём код?
from manim import * class DetailedAnimationCreation(Scene): def construct(self): # --- 1. ФУНКЦИЯ СОЗДАНИЯ ЧЕЛОВЕЧКА --- def create_human(col, name): head = Circle(radius=0.3, color=col).set_fill(col, opacity=0.3) body = Line(DOWN * 0.3, DOWN * 1.2, color=col) arm_l = Line(DOWN * 0.5, DOWN * 0.8 + LEFT * 0.5, color=col) arm_r = Line(DOWN * 0.5, DOWN * 0.8 + RIGHT * 0.5, color=col) leg_l = Line(DOWN * 1.2, DOWN * 1.8 + LEFT * 0.3, color=col) leg_r = Line(DOWN * 1.2, DOWN * 1.8 + RIGHT * 0.3, color=col) label = Text(name, font_size=20).next_to(leg_l, DOWN, buff=0.2) return VGroup(head, body, arm_l, arm_r, leg_l, leg_r, label) dev_a = create_human(BLUE, "Dev A").to_edge(LEFT, buff=1.5).shift(DOWN * 0.5) dev_b = create_human(GREEN, "Dev B").to_edge(RIGHT, buff=1.5).shift(DOWN * 0.5) # --- 2. КОМПЬЮТЕР И СТОЛ --- table = Line(LEFT * 3.5, RIGHT * 3.5, color=GRAY).shift(DOWN * 1.5) monitor_frame = RoundedRectangle(height=2.0, width=3.2, corner_radius=0.1, color=WHITE) monitor_stand = VGroup( Line(DOWN * 1.0, DOWN * 1.3), Line(LEFT * 0.5 + DOWN * 1.3, RIGHT * 0.5 + DOWN * 1.3) ) screen = Rectangle(height=1.7, width=2.9, fill_color=BLACK, fill_opacity=1).move_to(monitor_frame) computer = VGroup(monitor_frame, monitor_stand, screen).shift(UP * 0.2) # --- 3. НАСТОЯЩИЙ КОД НА ЭКРАНЕ --- # Используем моноширинный шрифт для имитации IDE code_text = Text( "ball = Circle(color=GOLD)\nball.set_fill(opacity=1)\nself.play(Create(ball))", font="Consolas", font_size=11, color=GREEN, line_spacing=1.2 ).move_to(screen.get_center()) # --- АНИМАЦИЯ --- self.play(Create(table)) self.play(FadeIn(dev_a, shift=UP), FadeIn(dev_b, shift=UP)) self.play(Create(computer)) self.wait(0.5) # Печать кода (Разработчик А "пишет") self.play( Write(code_text), dev_a.animate.shift(RIGHT * 0.1), run_time=4 ) self.play(dev_a.animate.shift(LEFT * 0.1)) self.wait(1) # 4. Результат рендеринга (всплывает над монитором) result_window = Square(side_length=1.4, color=BLUE).next_to(computer, UP, buff=0.4) res_obj = Circle(radius=0.4, color=GOLD, fill_opacity=1).move_to(result_window) self.play(Create(result_window)) # Эффект: шар "вылетает" из кода в окно предпросмотра self.play(ReplacementTransform(code_text.copy(), res_obj)) self.play(res_obj.animate.scale(1.1).set_color(YELLOW), run_time=1) # 5. Финал self.play( dev_a.animate.shift(UP * 0.3), dev_b.animate.shift(UP * 0.3), rate_func=there_and_back, run_time=0.5 ) self.wait(2)