Repository: ManimCommunity/manim
File: manim/mobject/geometry.py (Python)

Code before:
class ArcAngle(Arc):
    """A circular arc representing an angle of two lines.

    Parameters
    ----------
    line1 : :class:`Line`
        The first line.
    line2 : :class:`Line`
        The second line.
    radius : :class:`float`
        The radius of the :class:`Arc`.
    quadrant : Sequence[:class:`int`]
        A sequence of two :class:`int` numbers determining which of the 4 quadrants should be used.
        Possibilities: (1,1), (-1,1), (1,-1), (-1,-1).
    other_angle : :class:`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 : :class:`bool`
        Allows for a :class:`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 : :class:`float`
        The radius of the :class:`Dot`.
    dot_distance : :class:`float`
        Placement of the dot in the arc. This distance from the arc center is given as the radius
        diveded by this :class:`float` parameter.
    dot_color : :class:`~.Colors`
        The color of the :class:`Dot`.
    kwargs
        Further keyword arguments that are passed to the constructor of :class:`Arc`.

    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.

    ..manim:: RightArcAngleExample
        :save_last_frame:

        class RightArcAngleExample(Scene):
            def construct(self):
                line1 = Line( LEFT, RIGHT )
                line2 = Line( DOWN, UP )
                rightarcangles = [
                    ArcAngle(line1, line2, dot=True),
                    ArcAngle(line1, line2, radius=0.4, quadrant=(1,-1), dot=True, other_angle=True),
                    ArcAngle(line1, line2, radius=0.5, quadrant=(-1,1), stroke_width=8, dot=True, dot_color=YELLOW, dot_radius=0.05, other_angle=True),
                    ArcAngle(line1, line2, radius=0.7, quadrant=(-1,-1), color=RED, dot=True, dot_color=GREEN, dot_radius=0.07),
                ]
                line_list = VGroup( *[VGroup() for k in range(4)] )
                for k in range(4):

Review comment (suggestion):
If a parameter called `dot_distance` increases, then I'd expect the distance of the dot from the center to increase (and increase linearly). Maybe it should be called something else? Two ideas come to mind like 'dot_location' or 'dot_placement_proportion', but I'm not a huge fan of either of them. 

The value itself could range from 0 (right at the center) to 1 (right on the arc).

Code after:
class Angle(Arc, Elbow):
    """A circular arc or elbow-type mobject representing an angle of two lines.

    Parameters
    ----------
    line1 : :class:`Line`
        The first line.
    line2 : :class:`Line`
        The second line.
    radius : :class:`float`
        The radius of the :class:`Arc`.
    quadrant : Sequence[:class:`int`]
        A sequence of two :class:`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 : :class:`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 : :class:`bool`
        Allows for a :class:`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 : :class:`float`
        The radius of the :class:`Dot`. If not specified otherwise, this radius will be 1/10 of the arc radius.
    dot_distance : :class:`float`
        Relative distance from the center to the arc: 0 puts the dot in the center and 1 on the arc itself.
    dot_color : :class:`~.Colors`
        The color of the :class:`Dot`.
    elbow : :class:`bool`
        Produces an elbow-type mobject indicating a right angle, see :class:`RightAngle` for more information
        and a shorthand.
    **kwargs
        Further keyword arguments that are passed to the constructor of :class:`Arc` or :class:`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.

    .. manim:: RightArcAngleExample
        :save_last_frame:

        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),