manim.mobject.geometry.Angle

class Angle(line1, line2, radius=None, quadrant=1, 1, other_angle=False, dot=False, dot_radius=None, dot_distance=0.55, dot_color='#FFFFFF', elbow=False, **kwargs)[source]

Bases: manim.mobject.geometry.Arc, manim.mobject.geometry.Elbow

A circular arc or elbow-type mobject representing an angle of two lines.

Parameters
  • line1 (Line) – The first line.

  • line2 (Line) – The second line.

  • radius (float) – The radius of the Arc.

  • quadrant (Sequence[int]) – A sequence of two int numbers determining which of the 4 quadrants should be used. The first value indicates whether to anchor the arc on the first line closer to the end point (1) or start point (-1), and the second value functions similarly for the end (1) or start (-1) of the second line. Possibilities: (1,1), (-1,1), (1,-1), (-1,-1).

  • other_angle (bool) – Toggles between the two possible angles defined by two points and an arc center. If set to False (default), the arc will always go counterclockwise from the point on line1 until the point on line2 is reached. If set to True, the angle will go clockwise from line1 to line2.

  • dot (bool) – Allows for a Dot in the arc. Mainly used as an convention to indicate a right angle. The dot can be customized in the next three parameters.

  • dot_radius (float) – The radius of the Dot. If not specified otherwise, this radius will be 1/10 of the arc radius.

  • dot_distance (float) – Relative distance from the center to the arc: 0 puts the dot in the center and 1 on the arc itself.

  • dot_color (Colors) – The color of the Dot.

  • elbow (bool) – Produces an elbow-type mobject indicating a right angle, see RightAngle for more information and a shorthand.

  • **kwargs – Further keyword arguments that are passed to the constructor of Arc or Elbow.

Examples

The first example shows some right angles with a dot in the middle while the second example shows all 8 possible angles defined by two lines.

../_images/RightArcAngleExample-1.png
RightArcAngleExample
class RightArcAngleExample(Scene):
    def construct(self):
        line1 = Line( LEFT, RIGHT )
        line2 = Line( DOWN, UP )
        rightarcangles = [
            Angle(line1, line2, dot=True),
            Angle(line1, line2, radius=0.4, quadrant=(1,-1), dot=True, other_angle=True),
            Angle(line1, line2, radius=0.5, quadrant=(-1,1), stroke_width=8, dot=True, dot_color=YELLOW, dot_radius=0.04, other_angle=True),
            Angle(line1, line2, radius=0.7, quadrant=(-1,-1), color=RED, dot=True, dot_color=GREEN, dot_radius=0.08),
        ]
        line_list = VGroup( *[VGroup() for k in range(4)] )
        for k in range(4):
            linea = line1.copy()
            lineb = line2.copy()
            line_list[k].add( linea )
            line_list[k].add( lineb )
            line_list[k].add( rightarcangles[k] )
        line_list.arrange_in_grid(buff=1.5)
        self.add(
            line_list
        )
../_images/AngleExample-1.png
AngleExample
class AngleExample(Scene):
    def construct(self):
        line1 = Line( LEFT + (1/3) * UP, RIGHT + (1/3) * DOWN )
        line2 = Line( DOWN + (1/3) * RIGHT, UP + (1/3) * LEFT )
        angles = [
            Angle(line1, line2),
            Angle(line1, line2, radius=0.4, quadrant=(1,-1), other_angle=True),
            Angle(line1, line2, radius=0.5, quadrant=(-1,1), stroke_width=8, other_angle=True),
            Angle(line1, line2, radius=0.7, quadrant=(-1,-1), color=RED),
            Angle(line1, line2, other_angle=True),
            Angle(line1, line2, radius=0.4, quadrant=(1,-1)),
            Angle(line1, line2, radius=0.5, quadrant=(-1,1), stroke_width=8),
            Angle(line1, line2, radius=0.7, quadrant=(-1,-1), color=RED, other_angle=True),
        ]
        line_list = VGroup( *[VGroup() for k in range(8)] )
        for k in range(8):
            linea = line1.copy()
            lineb = line2.copy()
            line_list[k].add( linea )
            line_list[k].add( lineb )
            line_list[k].add( angles[k] )
        line_list.arrange_in_grid(n_rows=2, n_cols=4, buff=1.5)
        self.add(
            line_list
        )

Methods

generate_points

Initializes points and therefore the shape.

Attributes

animate

Used to animate the application of a method.

depth

The depth of the mobject.

height

The height of the mobject.

width

The width of the mobject.

generate_points()[source]

Initializes points and therefore the shape.

Gets called upon creation. This is an empty method that can be implemented by subclasses.