Попытка сделать собственную форму от Manim - PullRequest
0 голосов
/ 14 января 2020

пытаюсь сделать выпуклую линзу. Но не используя SVGimages или другие вещи. Я хочу определить это в классе, но я получу черное изображение на экране. Что мне делать? Хорошо, я могу исправить это следующим образом: a = ArcBetweenPoints (ORIGIN, UP, self.rad) и b = ArcBetweenPoints (UP, ORIGIN, self.rad), затем добавьте self.add (a, b). ОК, нет проблем. Но почему self.add () не использовался в классе Circle (Ar c), который был определен в пакетах manim. Как это может работать? Вот код:

класс YaşamÇiçeği (Mobject):

CONFIG = {
    "rad" : TAU / 6,
}

def __init__(self, **kwargs):
    Mobject.__init__(self)
    ArcBetweenPoints(ORIGIN, UP, self.rad)
    ArcBetweenPoints(UP, ORIGIN, self.rad)

1 Ответ

0 голосов
/ 15 января 2020

Все геометрические фигуры c являются объектами VM, то есть кривыми Безье. Эти VMobjects имеют специальный метод, называемый generate_points, в случае Ar c это this .

Класс Circle является подклассом Arc (частный случай где Arc = 360º), поэтому вам не нужно использовать метод «add», и VMobjects, и VGroups также могут быть контейнерами, но преимущество VMobjects заключается в том, что вы можете явно определять форму путей. Я рекомендую вам посмотреть это видео , которое я уже сделал, чтобы вы могли лучше составить себе представление.

Рекомендации: не используйте не-Engli sh символы, они могут принести вам проблемы в компиляции. Также дайте правильный формат вашего кода, изучите основы Markdown за 5 минут здесь .

...