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

Code before:
    def __init__(
        self,
        point_1: Optional[Sequence[float]],
        point_2: Optional[Sequence[float]],
        direction: Optional[Sequence[float]] = ORIGIN,
        **kwargs
    ):
        if all(direction == ORIGIN):
            line_vector = np.array(point_2) - np.array(point_1)
            direction = np.array([line_vector[1], -line_vector[0], 0])
        Brace.__init__(self, Line(point_1, point_2), direction=direction, **kwargs)


class ArcBrace(Brace):
    """Creates a :class:`~Brace` that wraps around an :class:`~Arc`.

    The direction parameter allows the brace to be applied
    from outside or inside the Arc.

    .. warning::
        The :class:`ArcBrace` is smaller for Arcs with smaller radii.

    .. note::
        The :class:`ArcBrace` is initially a vertical :class:`Brace` defined by the length of the
         :class:`Arc`, but is then scaled down to match the start and end angles. An
         exponential function is applied after it is shifted based on the radius of the arc.

        The scaling effect is not applied for arcs with radii smaller than 1 to prevent over-scaling.

    Parameters
    ----------
    arc : Optional[:class:`Arc`]
        The Arc to which the Brace wraps around.
    direction :
        The direction from which the brace faces the Arc.
        LEFT for inside the Arc, and RIGHT for the outside.

    Example
    -------
        .. manim:: ArcBraceExample
            :save_last_frame:
            :ref_classes: Arc

            class ArcBraceExample(Scene):
                def construct(self):
                    arc_1 = Arc(radius=1.5,start_angle=0,angle=2*PI/3).set_color(RED)
                    brace_1 = ArcBrace(arc_1,LEFT)
                    group_1 = VGroup(arc_1,brace_1)

                    arc_2 = Arc(radius=3,start_angle=0,angle=5*PI/6).set_color(YELLOW)
                    brace_2 = ArcBrace(arc_2)

Review comment (suggestion):
An attempt to fix some weird formatting.
```suggestion
        The :class:`ArcBrace` is initially a vertical :class:`Brace` defined by the length of the :class:`~.Arc`, but is scaled down to match the start and end angles. An exponential function is then applied after it is shifted based on the radius of the arc.
```

Code after:
    def __init__(
        self,
        point_1: Optional[Sequence[float]],
        point_2: Optional[Sequence[float]],
        direction: Optional[Sequence[float]] = ORIGIN,
        **kwargs
    ):
        if all(direction == ORIGIN):
            line_vector = np.array(point_2) - np.array(point_1)
            direction = np.array([line_vector[1], -line_vector[0], 0])
        Brace.__init__(self, Line(point_1, point_2), direction=direction, **kwargs)


class ArcBrace(Brace):
    """Creates a :class:`~Brace` that wraps around an :class:`~.Arc`.

    The direction parameter allows the brace to be applied
    from outside or inside the arc.

    .. warning::
        The :class:`ArcBrace` is smaller for arcs with smaller radii.

    .. note::
        The :class:`ArcBrace` is initially a vertical :class:`Brace` defined by the length of the :class:`~.Arc`, but is scaled down to match the start and end angles. An exponential function is then applied after it is shifted based on the radius of the arc.

        The scaling effect is not applied for arcs with radii smaller than 1 to prevent over-scaling.

    Parameters
    ----------
    arc
        The :class:`~.Arc` that wraps around the :class:`Brace` mobject.
    direction
        The direction from which the brace faces the arc.
        ``LEFT`` for inside the arc, and ``RIGHT`` for the outside.

    Example
    -------
        .. manim:: ArcBraceExample
            :save_last_frame:
            :ref_classes: Arc

            class ArcBraceExample(Scene):
                def construct(self):
                    arc_1 = Arc(radius=1.5,start_angle=0,angle=2*PI/3).set_color(RED)
                    brace_1 = ArcBrace(arc_1,LEFT)
                    group_1 = VGroup(arc_1,brace_1)

                    arc_2 = Arc(radius=3,start_angle=0,angle=5*PI/6).set_color(YELLOW)
                    brace_2 = ArcBrace(arc_2)
                    group_2 = VGroup(arc_2,brace_2)