Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from manim import *
- # Площадь прямоугольников в группе
- def get_rects_area(group):
- area = 0
- for mob in group:
- area += mob.width * mob.height
- return area
- # правое оснащение
- class GraphAreaPlot_right(Scene):
- def construct(self):
- ax = Axes(
- x_range=[-3, 3],
- y_range=[-1.5, 1.5],
- axis_config={
- "tip_width": 0.15,
- "tip_height": 0.15,
- "tick_size": 0.08
- },
- x_axis_config={"numbers_to_include": [-1, 1]},
- )
- labels = ax.get_axis_labels()
- # график функции
- graph = ax.plot(lambda x: np.cos(x), x_range=[-3, 3], color=BLUE_B)
- # Разбиения
- dx = ValueTracker(0.3)
- riemann_area = always_redraw(lambda:
- ax.get_riemann_rectangles(
- graph,
- x_range=[0, 0.5 * PI],
- dx=dx.get_value(),
- color=TEAL_A,
- fill_opacity=0.9,
- stroke_width=0.2,
- input_sample_type="right"
- )
- )
- # Количество прямоугольников и их площадь
- num = MathTex("n=").to_edge(UL)
- area = MathTex("S=").next_to(num, DOWN, 0.3, LEFT)
- num_value = always_redraw(
- lambda: DecimalNumber(len(riemann_area), 0).next_to(num)
- )
- area_value = always_redraw(
- lambda: DecimalNumber(get_rects_area(riemann_area)).next_to(area)
- )
- #
- sum = ax.get_area(
- graph,
- [0, 0.5 * PI],
- color=(YELLOW, YELLOW),
- opacity=1,
- stroke_width=0
- )
- # Анимация
- self.add(ax, labels)
- self.wait()
- self.play(Create(graph), run_time = 1.5)
- self.play(DrawBorderThenFill(riemann_area), run_time = 2.5, lag_ratio = 0.2)
- self.play(
- FadeIn(num),
- FadeIn(num_value),
- FadeIn(area),
- FadeIn(area_value),
- )
- self.play(dx.animate.set_value(0.03), run_time = 10)
- self.wait()
- self.play(
- FadeOut(num, shift = DOWN),
- FadeOut(num_value, shift = DOWN),
- FadeOut(area, shift = DOWN),
- FadeOut(area_value, shift = DOWN),
- )
- self.play(ReplacementTransform(riemann_area, sum), run_time = 2)
- self.add(sum)
- self.remove(riemann_area)
- self.wait(2)
- # среднее оснащение
- class GraphAreaPlot_center(Scene):
- def construct(self):
- ax = Axes(
- x_range=[-3, 3],
- y_range=[-1.5, 1.5],
- axis_config={
- "tip_width": 0.15,
- "tip_height": 0.15,
- "tick_size": 0.08
- },
- x_axis_config={"numbers_to_include": [-1, 1]},
- )
- labels = ax.get_axis_labels()
- # график функции
- graph = ax.plot(lambda x: np.cos(x), x_range=[-3, 3], color=BLUE_B)
- # Разбиения
- dx = ValueTracker(0.3)
- riemann_area = always_redraw(lambda:
- ax.get_riemann_rectangles(
- graph,
- x_range=[0, 0.5 * PI],
- dx=dx.get_value(),
- color=TEAL_A,
- fill_opacity=0.9,
- stroke_width=0.2,
- input_sample_type="center"
- )
- )
- # Количество прямоугольников и их площадь
- num = MathTex("n=").to_edge(UL)
- area = MathTex("S=").next_to(num, DOWN, 0.3, LEFT)
- num_value = always_redraw(
- lambda: DecimalNumber(len(riemann_area), 0).next_to(num)
- )
- area_value = always_redraw(
- lambda: DecimalNumber(get_rects_area(riemann_area)).next_to(area)
- )
- #
- sum = ax.get_area(
- graph,
- [0, 0.5 * PI],
- color=(YELLOW, YELLOW),
- opacity=1,
- stroke_width=0
- )
- # Анимация
- self.add(ax, labels)
- self.wait()
- self.play(Create(graph), run_time = 1.5)
- self.play(DrawBorderThenFill(riemann_area), run_time = 2.5, lag_ratio = 0.2)
- self.play(
- FadeIn(num),
- FadeIn(num_value),
- FadeIn(area),
- FadeIn(area_value),
- )
- self.play(dx.animate.set_value(0.03), run_time = 10)
- self.wait()
- self.play(
- FadeOut(num, shift = DOWN),
- FadeOut(num_value, shift = DOWN),
- FadeOut(area, shift = DOWN),
- FadeOut(area_value, shift = DOWN),
- )
- self.play(ReplacementTransform(riemann_area, sum), run_time = 2)
- self.add(sum)
- self.remove(riemann_area)
- self.wait(2)
- # левое оснащение
- class GraphAreaPlot_left(Scene):
- def construct(self):
- ax = Axes(
- x_range=[-3, 3],
- y_range=[-1.5, 1.5],
- axis_config={
- "tip_width": 0.15,
- "tip_height": 0.15,
- "tick_size": 0.08
- },
- x_axis_config={"numbers_to_include": [-1, 1]},
- )
- labels = ax.get_axis_labels()
- # график функции
- graph = ax.plot(lambda x: np.cos(x), x_range=[-3, 3], color=BLUE_B)
- # Разбиения
- dx = ValueTracker(0.3)
- riemann_area = always_redraw(lambda:
- ax.get_riemann_rectangles(
- graph,
- x_range=[0, 0.5 * PI],
- dx=dx.get_value(),
- color=TEAL_A,
- fill_opacity=0.9,
- stroke_width=0.2,
- input_sample_type="left"
- )
- )
- # Количество прямоугольников и их площадь
- num = MathTex("n=").to_edge(UL)
- area = MathTex("S=").next_to(num, DOWN, 0.3, LEFT)
- num_value = always_redraw(
- lambda: DecimalNumber(len(riemann_area), 0).next_to(num)
- )
- area_value = always_redraw(
- lambda: DecimalNumber(get_rects_area(riemann_area)).next_to(area)
- )
- #
- sum = ax.get_area(
- graph,
- [0, 0.5 * PI],
- color=(YELLOW, YELLOW),
- opacity=1,
- stroke_width=0
- )
- # Анимация
- self.add(ax, labels)
- self.wait()
- self.play(Create(graph), run_time = 1.5)
- self.play(DrawBorderThenFill(riemann_area), run_time = 2.5, lag_ratio = 0.2)
- self.play(
- FadeIn(num),
- FadeIn(num_value),
- FadeIn(area),
- FadeIn(area_value),
- )
- self.play(dx.animate.set_value(0.03), run_time = 10)
- self.wait()
- self.play(
- FadeOut(num, shift = DOWN),
- FadeOut(num_value, shift = DOWN),
- FadeOut(area, shift = DOWN),
- FadeOut(area_value, shift = DOWN),
- )
- self.play(ReplacementTransform(riemann_area, sum), run_time = 2)
- self.add(sum)
- self.remove(riemann_area)
- self.wait(2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement