Mobjects¶
- class manim_extensions.compass.Compass(span=1.5, head_color=ManimColor('#FFFFFF'), niddle_color=ManimColor('#FC6255'), pen_color=ManimColor('#F7D96F'), stroke_width=2, leg_length=3.1, leg_width=0.12, r=0.2, **kwargs)[source]¶
Bases:
VGroupCompass mobject.
Example: CompassExample ¶
from manim import * from manim_extensions.compass import Compass class CompassExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) self.add(compass)
from manim import * from manim_extensions.compass import Compass class CompassExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) self.add(compass)- __init__(span=1.5, head_color=ManimColor('#FFFFFF'), niddle_color=ManimColor('#FC6255'), pen_color=ManimColor('#F7D96F'), stroke_width=2, leg_length=3.1, leg_width=0.12, r=0.2, **kwargs)[source]¶
- get_niddle_tip()[source]¶
Return the coordinates of the needle tip.
Example: GetNiddleTipDocExample ¶
from manim import * from manim_extensions.compass import Compass class GetNiddleTipDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) dot = Dot(compass.get_niddle_tip()) self.add(compass, dot)
from manim import * from manim_extensions.compass import Compass class GetNiddleTipDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) dot = Dot(compass.get_niddle_tip()) self.add(compass, dot)
- get_pen_tip()[source]¶
Return the coordinates of the pen tip.
Example: GetPenTipDocExample ¶
from manim import * from manim_extensions.compass import Compass class GetPenTipDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) dot = Dot(compass.get_pen_tip()) self.add(compass, dot)
from manim import * from manim_extensions.compass import Compass class GetPenTipDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) dot = Dot(compass.get_pen_tip()) self.add(compass, dot)
- get_niddle2pen_vec()[source]¶
Return the vector from the needle tip to the pen tip.
Example: GetNiddle2PenVecDocExample ¶
from manim import * from manim_extensions.compass import Compass class GetNiddle2PenVecDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) v = compass.get_niddle2pen_vec() arrow = Arrow(compass.get_niddle_tip(), compass.get_niddle_tip() + v) self.add(compass, arrow)
from manim import * from manim_extensions.compass import Compass class GetNiddle2PenVecDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) v = compass.get_niddle2pen_vec() arrow = Arrow(compass.get_niddle_tip(), compass.get_niddle_tip() + v) self.add(compass, arrow)
- get_span()[source]¶
Return the compass span: distance between pen tip and needle tip.
Example: GetSpanDocExample ¶
from manim import * from manim_extensions.compass import Compass class GetSpanDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) label = Text(f"span={compass.get_span():.2f}").to_edge(UP) self.add(compass, label)
from manim import * from manim_extensions.compass import Compass class GetSpanDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) label = Text(f"span={compass.get_span():.2f}").to_edge(UP) self.add(compass, label)
- move_niddle_tip_to(pos)[source]¶
Move the compass as a whole so that the needle tip is at pos.
Example: CompassMoveNiddleTipToDocExample ¶
from manim import * from manim_extensions.compass import Compass class CompassMoveNiddleTipToDocExample(Scene): def construct(self): compass = Compass().move_niddle_tip_to(ORIGIN) self.add(compass)
from manim import * from manim_extensions.compass import Compass class CompassMoveNiddleTipToDocExample(Scene): def construct(self): compass = Compass().move_niddle_tip_to(ORIGIN) self.add(compass)
- rotate_about_niddle_tip(angle=1.5707963267948966)[source]¶
Rotate the compass as a whole around the needle tip by angle.
Example: RotateAboutNiddleTipDocExample ¶
from manim import * from manim_extensions.compass import Compass class RotateAboutNiddleTipDocExample(Scene): def construct(self): compass = Compass().rotate_about_niddle_tip(PI / 4) self.add(compass)
from manim import * from manim_extensions.compass import Compass class RotateAboutNiddleTipDocExample(Scene): def construct(self): compass = Compass().rotate_about_niddle_tip(PI / 4) self.add(compass)
- reverse_tip()[source]¶
Mirror-flip the needle tip and pen tip.
Example: ReverseTipDocExample ¶
from manim import * from manim_extensions.compass import Compass class ReverseTipDocExample(Scene): def construct(self): compass = Compass().reverse_tip() self.add(compass)
from manim import * from manim_extensions.compass import Compass class ReverseTipDocExample(Scene): def construct(self): compass = Compass().reverse_tip() self.add(compass)
- split_copass_with_gain_angle(angle)[source]¶
Open the two compass legs by an additional angle.
Example: SplitCompassWithGainAngleDocExample ¶
from manim import * from manim_extensions.compass import Compass class SplitCompassWithGainAngleDocExample(Scene): def construct(self): compass = Compass().split_copass_with_gain_angle(PI / 6) self.add(compass)
from manim import * from manim_extensions.compass import Compass class SplitCompassWithGainAngleDocExample(Scene): def construct(self): compass = Compass().split_copass_with_gain_angle(PI / 6) self.add(compass)
- split_compass_with_niddle_tip_fixed(angle, niddle_tip_pos)[source]¶
Keep the needle tip fixed and open the two compass legs by angle.
Example: SplitCompassWithNiddleTipFixedDocExample ¶
from manim import * from manim_extensions.compass import Compass class SplitCompassWithNiddleTipFixedDocExample(Scene): def construct(self): compass = Compass().split_compass_with_niddle_tip_fixed(PI / 6, ORIGIN) self.add(compass)
from manim import * from manim_extensions.compass import Compass class SplitCompassWithNiddleTipFixedDocExample(Scene): def construct(self): compass = Compass().split_compass_with_niddle_tip_fixed(PI / 6, ORIGIN) self.add(compass)
- get_compass_rotate_angle_direction()[source]¶
Return whether the two compass legs are counter-clockwise from each other.
Example: GetCompassRotateAngleDirectionDocExample ¶
from manim import * from manim_extensions.compass import Compass class GetCompassRotateAngleDirectionDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) label = Text(f"ccw={compass.get_compass_rotate_angle_direction()}") self.add(compass, label)
from manim import * from manim_extensions.compass import Compass class GetCompassRotateAngleDirectionDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) label = Text(f"ccw={compass.get_compass_rotate_angle_direction()}") self.add(compass, label)- Return type:
- get_compass_rotate_angle_with_span(span)[source]¶
Return the angle between the two legs when the compass is opened to span.
Example: GetCompassRotateAngleWithSpanDocExample ¶
from manim import * from manim_extensions.compass import Compass class GetCompassRotateAngleWithSpanDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) label = Text(f"angle={compass.get_compass_rotate_angle_with_span(2):.2f}") self.add(compass, label)
from manim import * from manim_extensions.compass import Compass class GetCompassRotateAngleWithSpanDocExample(Scene): def construct(self): compass = Compass().to_edge(LEFT) label = Text(f"angle={compass.get_compass_rotate_angle_with_span(2):.2f}") self.add(compass, label)- Return type:
- set_compass(span_angle, rotate_angle, niddle_tip_pos)[source]¶
Set the compass span, rotation angle, and needle tip position.
Example: SetCompassDocExample ¶
from manim import * from manim_extensions.compass import Compass class SetCompassDocExample(Scene): def construct(self): compass = Compass().set_compass(PI / 6, PI / 4, ORIGIN) self.add(compass)
from manim import * from manim_extensions.compass import Compass class SetCompassDocExample(Scene): def construct(self): compass = Compass().set_compass(PI / 6, PI / 4, ORIGIN) self.add(compass)
- class manim_extensions.compass.Pencil(height=2, angle=0.7853981633974483)[source]¶
Bases:
SVGMobjectPencil mobject.
Example: PencilDocExample ¶
from manim import * from manim_extensions.compass import Pencil class PencilDocExample(Scene): def construct(self): pencil = Pencil().to_edge(LEFT) self.add(pencil)
from manim import * from manim_extensions.compass import Pencil class PencilDocExample(Scene): def construct(self): pencil = Pencil().to_edge(LEFT) self.add(pencil)- get_nib()[source]¶
Return the position of the nib.
Example: GetNibDocExample ¶
from manim import * from manim_extensions.compass import Pencil class GetNibDocExample(Scene): def construct(self): pencil = Pencil().to_edge(LEFT) dot = Dot(pencil.get_nib()) self.add(pencil, dot)
from manim import * from manim_extensions.compass import Pencil class GetNibDocExample(Scene): def construct(self): pencil = Pencil().to_edge(LEFT) dot = Dot(pencil.get_nib()) self.add(pencil, dot)
- get_nid_vector()[source]¶
Return the direction of the pencil body.
Example: GetNidVectorDocExample ¶
from manim import * from manim_extensions.compass import Pencil class GetNidVectorDocExample(Scene): def construct(self): pencil = Pencil().to_edge(LEFT) v = pencil.get_nid_vector() arrow = Arrow(pencil.get_nib(), pencil.get_nib() + v) self.add(pencil, arrow)
from manim import * from manim_extensions.compass import Pencil class GetNidVectorDocExample(Scene): def construct(self): pencil = Pencil().to_edge(LEFT) v = pencil.get_nid_vector() arrow = Arrow(pencil.get_nib(), pencil.get_nib() + v) self.add(pencil, arrow)
- move_nid_to(point=array([0., 0., 0.]))[source]¶
Translate the pencil so that the nib moves to point.
Example: MoveNidToDocExample ¶
from manim import * from manim_extensions.compass import Pencil class MoveNidToDocExample(Scene): def construct(self): pencil = Pencil().move_nid_to(ORIGIN) self.add(pencil)
from manim import * from manim_extensions.compass import Pencil class MoveNidToDocExample(Scene): def construct(self): pencil = Pencil().move_nid_to(ORIGIN) self.add(pencil)
- class manim_extensions.compass.Ruler(length=12, width=0.8, ruler_color=ManimColor('#FFFFFF'), stroke_width=2, fill_opacity=0.4, **kwargs)[source]¶
Bases:
VGroupRuler mobject.
Example: RulerExample ¶
from manim import * from manim_extensions.compass import Ruler class RulerExample(Scene): def construct(self): ruler = Ruler() self.add(ruler)
from manim import * from manim_extensions.compass import Ruler class RulerExample(Scene): def construct(self): ruler = Ruler() self.add(ruler)- __init__(length=12, width=0.8, ruler_color=ManimColor('#FFFFFF'), stroke_width=2, fill_opacity=0.4, **kwargs)[source]¶
- get_vecs_of_ruler()[source]¶
Return the extension and width directions of the ruler.
Example: GetVecsOfRulerDocExample ¶
from manim import * from manim_extensions.compass import Ruler class GetVecsOfRulerDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) u, v = ruler.get_vecs_of_ruler() center = ruler.get_middle_point() self.add(ruler, Arrow(center, center + u), Arrow(center, center + v))
from manim import * from manim_extensions.compass import Ruler class GetVecsOfRulerDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) u, v = ruler.get_vecs_of_ruler() center = ruler.get_middle_point() self.add(ruler, Arrow(center, center + u), Arrow(center, center + v))
- get_direction_vector_of_ruler()[source]¶
Return the extension direction of the ruler.
Example: GetDirectionVectorOfRulerDocExample ¶
from manim import * from manim_extensions.compass import Ruler class GetDirectionVectorOfRulerDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) v = ruler.get_direction_vector_of_ruler() center = ruler.get_middle_point() self.add(ruler, Arrow(center, center + v))
from manim import * from manim_extensions.compass import Ruler class GetDirectionVectorOfRulerDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) v = ruler.get_direction_vector_of_ruler() center = ruler.get_middle_point() self.add(ruler, Arrow(center, center + v))
- get_width_vector_of_ruler()[source]¶
Return the width direction of the ruler.
Example: GetWidthVectorOfRulerDocExample ¶
from manim import * from manim_extensions.compass import Ruler class GetWidthVectorOfRulerDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) v = ruler.get_width_vector_of_ruler() center = ruler.get_middle_point() self.add(ruler, Arrow(center, center + v))
from manim import * from manim_extensions.compass import Ruler class GetWidthVectorOfRulerDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) v = ruler.get_width_vector_of_ruler() center = ruler.get_middle_point() self.add(ruler, Arrow(center, center + v))
- get_start_and_end()[source]¶
Return the start and end points of the ruler.
Example: GetStartAndEndDocExample ¶
from manim import * from manim_extensions.compass import Ruler class GetStartAndEndDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) start, end = ruler.get_start_and_end() self.add(ruler, Dot(start), Dot(end))
from manim import * from manim_extensions.compass import Ruler class GetStartAndEndDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) start, end = ruler.get_start_and_end() self.add(ruler, Dot(start), Dot(end))
- get_middle_point()[source]¶
Return the midpoint of the ruler.
Example: GetMiddlePointDocExample ¶
from manim import * from manim_extensions.compass import Ruler class GetMiddlePointDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) self.add(ruler, Dot(ruler.get_middle_point()))
from manim import * from manim_extensions.compass import Ruler class GetMiddlePointDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) self.add(ruler, Dot(ruler.get_middle_point()))
- get_length_of_ruler()[source]¶
Return the length of the ruler.
Example: GetLengthOfRulerDocExample ¶
from manim import * from manim_extensions.compass import Ruler class GetLengthOfRulerDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) label = Text(f"length={ruler.get_length_of_ruler():.2f}").to_edge(UP) self.add(ruler, label)
from manim import * from manim_extensions.compass import Ruler class GetLengthOfRulerDocExample(Scene): def construct(self): ruler = Ruler().to_edge(LEFT) label = Text(f"length={ruler.get_length_of_ruler():.2f}").to_edge(UP) self.add(ruler, label)
- set_ruler(start=array([-1., 0., 0.]), end=array([1., 0., 0.]))[source]¶
Place the ruler so that one of its edges aligns with start and end.
- Parameters:
start – start point of the ruler placement
end – end point of the ruler placement
manim: (..) –
SetRulerDocExample: :save_last_frame:
from manim import * from manim_extensions.compass import Ruler
- class SetRulerDocExample(Scene):
- def construct(self):
ruler = Ruler().set_ruler(LEFT, RIGHT) self.add(ruler)
- put_ruler_flat()[source]¶
Lay the ruler flat.
Example: PutRulerFlatDocExample ¶
from manim import * from manim_extensions.compass import Ruler class PutRulerFlatDocExample(Scene): def construct(self): ruler = Ruler().put_ruler_flat() self.add(ruler)
from manim import * from manim_extensions.compass import Ruler class PutRulerFlatDocExample(Scene): def construct(self): ruler = Ruler().put_ruler_flat() self.add(ruler)