Почему использование области под кривой в manim выдает мне ошибку?

#python-3.x #manim

Вопрос:

Я пытаюсь показать область под кривой с помощью manim, это мой код

 from manimlib import *
import numpy as np

class GraphExample(Scene):
    def construct(self):
      ax = Axes((-3, 10), (-1, 8))
      ax.add_coordinate_labels()


      curve = ax.get_graph(lambda x: 2 * np.sin(x))

      self.add(ax,curve)

      area = ax.get_area_under_graph(graph=curve, x_range= (0,2))

      self.add(curve, area)
      self.wait(1)
 

это выдает сообщение об ошибке

 File "c:manim-mastermanimlib__main__.py", line 17, in main scene.run()
File "c:manim-mastermanimlibscenescene.py", line 75, in run self.construct()
File "test.py", line 21, in construct self.add(area)
File "c:manim-mastermanimlibscenescene.py", line 209, in add self.remove(*new_mobjects)
File "c:manim-mastermanimlibscenescene.py", line 226, in remove self.mobjects = restructure_list_to_exclude_certain_family_members(
File "c:manim-mastermanimlibutilsfamily_ops.py", line 25, in restructure_list_to_exclude_certain_family_members 
to_remove = extract_mobject_family_members(to_remove)
File "c:manim-mastermanimlibutilsfamily_ops.py", line 5, in extract_mobject_family_members result = list(it.chain(*[
File "c:manim-mastermanimlibutilsfamily_ops.py", line 6, in <listcomp>mob.get_family()
AttributeError: 'NoneType' object has no attribute 'get_family'
 

Я не знаю, что мне нужно изменить, кто-нибудь, пожалуйста, помогите мне здесь

Ответ №1:

Я изменил код, чтобы использовать метод get_area Manim.

get_area(график, x_range=Нет, color=[‘#58C4DD’, ‘#83C167’], непрозрачность = 0.3, bounded_graph= Нет, ** kwargs)

Возвращает многоугольник, представляющий область под переданным графиком.

 from manim import *
import numpy as np

class GraphExample(Scene):
    def construct(self):
        ax = Axes((-3, 10), (-1, 8))
        
        ax.add_coordinates()

        curve = ax.get_graph(lambda x: 2 * np.sin(x))

        self.add(ax, curve)

        area = ax.get_area(graph=curve, x_range=(0,2))

        self.add(area)
        self.wait(1)
 

Вывод:

Вывод графического примера