Я не хочу создавать небольшую анимацию с помощью Manim. Есть прямоугольник, в котором будут нарисованы две линии (слева и снизу прямоугольника) и новый прямоугольник должен «вырасти» снизу. При использовании GrowFromEdge(element, DOWN)
ширина прямоугольника также изменяется, но должна изменяться только высота. Что мне делать? Использование height=0
, а затем ApplyMethod(element.set_height, HEIGHT)
ничего не показывает. Вот мой код:
from manimlib.imports import *
from manimlib.constants import COLOR_MAP
import numpy as np
class Test(Scene):
def construct(self):
EXPLAIN_WIDTH = 5
EXPLAIN_HEIGHT = 2
explain_rect = Rectangle(
width=EXPLAIN_WIDTH,
height=EXPLAIN_HEIGHT,
origin=np.array(
[0,
0,
0]
)
).set_stroke(width=1)
explain_line_left = Line(
start=np.array(
[EXPLAIN_WIDTH / -2,
EXPLAIN_HEIGHT / -2,
0]
),
end=np.array(
[EXPLAIN_WIDTH / -2,
EXPLAIN_HEIGHT / 2,
0]
),
).set_color(COLOR_MAP["RED_A"])
explain_line_bottom = Line(
start=np.array(
[EXPLAIN_WIDTH / -2,
EXPLAIN_HEIGHT / -2,
0]
),
end=np.array(
[EXPLAIN_WIDTH / 2,
EXPLAIN_HEIGHT / -2,
0]
),
color=COLOR_MAP["RED_A"]
)
explain_filled_rect = Rectangle(
width=EXPLAIN_WIDTH,
height=EXPLAIN_HEIGHT,
color=None
).set_fill(COLOR_MAP["RED_A"], 1)
self.play(FadeIn(explain_rect))
self.play(
GrowFromEdge(explain_line_left, BOTTOM),
GrowFromEdge(explain_line_bottom, LEFT)
)
self.wait(1)
self.play(GrowFromEdge(explain_filled_rect, BOTTOM))
self.wait(2)