#4932·manim

在 Cairo 和 OpenGL 之间, Mobject.split() 的行为不同

作者: nikolajmunk创建于 2026年8月11日更新于 2026年8月11日

问题描述 / 预期行为

在 #4914 中提到的 split 的行为在两种类型的 Mobject 中是不同的。以下是 Mobject.split 的实现:

python
def split(self) -> list[Mobject]:
    result: list[Mobject] = [self] if len(self.points) > 0 else []
    return result + self.submobjects

而以下是 OpenGLMobject.split 的实现:

python
def split(self) -> Sequence[OpenGLMobject]:
    return self.submobjects

简而言之,Cairo 版本可能包含具有点的 mobject 本身,否则简单地返回 self.submobjects 的副本。OpenGL 版本从来不包含 mobject 本身,它不会复制 self.submobjects,而是简单地返回列表本身。

内容来源: ManimCommunity/manim