Mobject
The defined boundary functions for
Mobject in mobject.py
- def get_points_defining_boundary(self)
- def get_boundary_point(self, direction)
- def get_start(self)
- def get_end(self)
- def get_start_and_end(self)
- def point_from_proportion(self, alpha)
Boundary
def get_points_defining_boundary(self)
get_points_defining_boundary is used to get all points that defining the boundary of a
Mobject
def get_boundary_point(self, direction)
get_boundary_point is used to get a boundary point of a
Mobject with respect to the specified direction parameter, direction/
def get_start(self)
get_start is used to get the start boundary point of a
Mobject.
def get_end(self)
get_end is used to get the end boundary point of a
Mobject.
def get_start_and_end(self)
get_start_and_end is used to get both the start and end boundary point of a
Mobject.
def point_from_proportion(self, alpha)
def point_from_proportion is used to get a boundary point of a
Mobject with respect to the specified alpha paraemter, alpha.
Example
Code
# folder/file: tut/manim_mobject_func_boundary_001a.py
import re
from manimlib.scene.scene import Scene
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
from manimlib.animation.creation import Write
from manimlib.animation.transform import ApplyMethod, ApplyFunction
class manim_mobject_func_boundary_001a(Scene):
def construct(self):
linex=Line([2,2,0],[1,1,0],color="#88FF00")
polya= RoundedRectangle(width=2,height=2,corner_radius=0.5,stroke_width=0,fill_color="#FFFF00",fill_opacity=1)
polyb = Rectangle(width=2.5,height=1.5,stroke_width=15,color="#88FF00",fill_color="#FFFF00",fill_opacity=1)
polyc= Square(side_length=2,stroke_width=20,fill_color="#FF8800",fill_opacity=1).move_to([-3,-2,0])
polyd= Circle(arc_center=(-2,0.75,0),color="#888888")
polya.add(Rectangle(width=2,height=2,color="#77DDCC").move_to(polya))
polya.add(Rectangle(width=1,height=2.5,color="#77DDCC").move_to(polya))
polya.add(TextMobject("A").move_to(polya))
polye = Rectangle(width=1.25,height=3.75,color="#888888",fill_color="#333333",fill_opacity=1).move_to([-0.625,-1.125,0])
polyf= Rectangle(width=1,height=2,color="#888888").move_to([-2.5,-2,0])
polyb.add(polye)
self.play(ShowCreation(polyb),run_time=2)
self.wait()
self.play(ShowCreation(polyc),ShowCreation(polyf),run_time=2)
self.wait()
self.play(ShowCreation(polya.move_to(polyd)),ShowCreation(polyd),run_time=2)
self.wait()
self.add(TextMobject("B").move_to(polyb))
self.add(TextMobject("C").move_to(polyc))
self.add(TextMobject("E").move_to(polye))
self.add(linex)
self.add(Rectangle(width=14.22,height=8))
text=TexMobject(r"polyc.get\_points\_defining\_boundary():\ ",re.sub("\s+","\ ",str(polyc.get_points_defining_boundary())).replace("[","\cr[")).move_to([0,3,0])
self.play(Write(text.shift_onto_screen()),run_time=3)
self.wait()
self.play(FadeOut(text),run_time=2)
text=TexMobject(r"polyb.get\_boundary\_point(direction=[0,1,0]):\ ",re.sub("\s+","\ ",str(polyb.get_boundary_point(direction=[0,1,0])).replace("[","\cr["))).move_to([0,3,0])
self.play(Write(text.shift_onto_screen()),run_time=3)
self.wait()
self.play(FadeOut(text),run_time=2)
text=TexMobject(r"polyb.get\_start():\ ",re.sub("\s+","\ ",str(polyb.get_start()).replace("[","\cr["))).move_to([0,3,0])
self.play(Write(text.shift_onto_screen()),run_time=3)
self.wait()
self.play(FadeOut(text),run_time=2)
text=TexMobject(r"polyb.get\_end():\ ",re.sub("\s+","\ ",str(polyb.get_end()).replace("[","\cr["))).move_to([0,3,0])
self.play(Write(text.shift_onto_screen()),run_time=3)
self.wait()
self.play(FadeOut(text),run_time=2)
text=TexMobject(r"polyb.get\_start\_and\_end():\ ",re.sub("\s+","\ ",str(polyb.get_start_and_end()).replace("[","\cr["))).move_to([0,3,0])
self.play(Write(text.shift_onto_screen()),run_time=3)
self.wait()
self.play(FadeOut(text),run_time=2)
text=TexMobject(r"polyb.point\_from\_proportion(0.77):\ ",re.sub("\s+","\ ",str(polyb.point_from_proportion(0.77)).replace("[","\cr["))).move_to([0,3,0])
self.play(Write(text.shift_onto_screen()),run_time=3)
self.wait()
self.play(FadeOut(text),run_time=2)
Output