Mobject
The defined submobject function of
Mobject in mobject.py is
- def add(self, *mobjects)
- def add_to_back(self, *mobjects)
- def remove(self, *mobjects)
- def push_self_into_submobjects(self)
- def add_n_more_submobjects(self, n)
- def copy(self)
- def deepcopy(self)
- def repeat_submobject(self, submob)
Submobject Functions
def add(self, *mobjects)
add is used to add the list of specified mobjects to the front of the submobjects of a
Mobject.
def add_to_back(self, *mobjects)
add_to_back is used to add the list of specified mobjects to the back of the submobjects of a
Mobject.
def remove(self, *mobjects)
remove is used to remove the list of specified mobjects from the submobject list of a
Mobject.
def push_self_into_submobjects(self)
push_self_into_submobjects is used to push a mobject itself into the submobject list of the
Mobject by self.add().
def add_n_more_submobjects(self, n)
add_n_more_submobjects is used to add n more submobject with respect to the specified n parameter,n into the submobject list of a
Mobject accordingly.
def copy(self)
copy is used to return a copy of a mobject itself through copy.
def deepcopy(self)
deepcopy is used to return a copy of a mobject itself through deepcopy.
def repeat_submobject(self, submob)
repeat_submobject is used to return a copy of mobject with respect to the specified submob parameter, submob, of a
Mobject.
Example
Code
# folder/file: tut/manim_mobject_func_submobject_001a.py
import re
import colorsys
from manimlib.imports import *
from manimlib.scene.scene import Scene
from manimlib.mobject.mobject import Mobject
from manimlib.mobject.types.point_cloud_mobject import Point, PointCloudDot
from manimlib.mobject.geometry import Rectangle, Square, Circle, Line,RoundedRectangle
from manimlib.animation.creation import ShowCreation
from manimlib.mobject.svg.tex_mobject import TexMobject, TextMobject
from manimlib.animation.fading import FadeOut, FadeIn, FadeInFromLarge
from manimlib.animation.creation import Write
from manimlib.animation.transform import ApplyMethod, ApplyFunction
class manim_mobject_func_submobject_001a(Scene):
def construct(self):
pnta=PointCloudDot(color="#888888",radius=1,)
polya=Circle(radius=0.85)
polyb=Square(side_length=1.5)
polyc=Rectangle(stroke_width=10,width=1.3,color='#666600')
def playmobj(text="",xxstr="",obj=1,s="False",t="5"):
def locals():
return {"thead":thead, "self":self, "Write":Write, "FadeOut":FadeOut, "Mobject":Mobject, "FadeInFromLarge":FadeInFromLarge, "FadeIn":FadeIn, "pnta": pnta, "polya":polya, "polyb":polyb, "polyc":polyc, "submobsum":submobsum}
def txtstr(obj):
return re.sub(r"( | [\[\<]+)|(\s+|[_#])",txtrpl,str(obj))
def txtrpl(matchobj):
if matchobj:
if matchobj.group(1):
return "\cr" + matchobj.group(1)
elif matchobj.group(2):
return "\\" + matchobj.group(2)
def thead(txt):
result=TexMobject(txtstr(txt))
if result.get_width() > 13:
result= result.set_width(13)
if result.get_height() > 7:
result= result.set_height(7)
return result.align_on_border([0,1,0])
def submobsum(xstr):
playmobj("len("+xstr+"): "+str(len(eval(xstr, globals(),locals())))+" "+xstr+": "+str(eval(xstr, globals(),locals())),obj=0)
if obj==1 : obj=text
if obj==0 or obj=="": obj="FadeOut(Mobject())"
exec("if "+str(len(text))+">0:\n\txtext=thead(\""+xxstr+text+"\")\n\tself.play(Write(xtext),"+obj+",run_time=0.3)\n\tself.wait("+t+")\n\tself.play(FadeOut(xtext),run_time=0.1)\nif '"+s+"'!='False': submobsum('"+s+"')", globals(), locals())
playmobj("FadeInFromLarge(pnta)","pnta=PointCloudDot(color='#888888',radius=1,) ")
playmobj("FadeIn(pnta.add(polya))","polya=Circle(radius=0.85) ")
playmobj("FadeIn(pnta.add_to_back(polyb))","polyb=Square(side_length=1.5) ")
playmobj("FadeIn(pnta.add(polyc))","polyc=Rectangle(stroke_width=10,width=1.3,color='#666600') ",s="pnta.submobjects")
playmobj("FadeIn(pnta.remove(polyb))",s="pnta.submobjects")
playmobj("FadeIn(pnta.push_self_into_submobjects())",s="pnta.submobjects")
playmobj("FadeIn(pnta.submobjects[2].shift([0,1.5,0]))")
playmobj("FadeIn(pnta.add_n_more_submobjects(4))",s="pnta.submobjects")
playmobj("FadeIn(pnta.copy().shift([3,0,0]))",s="self.get_mobjects()")
playmobj("FadeIn(pnta.deepcopy().shift([6,0,0]))",s="self.get_mobjects()")
playmobj("FadeIn(pnta.add(pnta.repeat_submobject(polyb).shift([-3,0,0])))",s="pnta.submobjects")
playmobj("FadeIn(pnta.add(polyb.copy()))",s="self.get_mobjects()")
playmobj(s="pnta.get_family()")
playmobj(s="pnta.submobjects")
self.wait()
Output