X2076

INVERSE-IN-CIRCUMCIRCLE OF X39

Let T1 be the circumcevian triangle of the 1st Brocard point, and let T2 be the circumcevian triangle of the 2nd Brocard point. Let VAVBVC be the vertex triangle of T1 and T2, and let \(S_{A}\)\(S_{B}\)\(S_{C}\) be the side triangle of T1 and T2. The lines VA\(S_{A}\), VB\(S_{B}\), VC\(S_{C}\) concur in X2076.
< A B C >: Reference Triangle △ABC [ A B ]: Sideline AB (Base c = 1) [ B C ]: Sideline BC (Side a) [ C A ]: Sideline CA (Side b) circumcircle: Circumcircle of △ABC { 3, 39 }: Brocard Axis { 3, 6 }: Brocard Axis { 141, 384 }: Central Line L(141, 384) { 99, 732 }: Central Line L(99, 732) { 385, 698 }: Central Line L(385, 698) A = Vertex A (0.0000, 0.0000) B = Vertex B (1.0000, 0.0000) C = Vertex C (0.6122, 0.5999) X_3 = CIRCUMCENTER (0.5000, 0.1021) X_39 = BROCARD MIDPOINT (0.5778, 0.2305) X_6 = SYMMEDIAN POINT (LEMOINE POINT, GREBE POINT) (0.6000, 0.2672) X_141 = COMPLEMENT OF SYMMEDIAN POINT (0.5061, 0.1663) X_384 = THE CONWAY POINT: EULER LINE INTERCEPT OF LINE X(32)X(76) (0.5532, 0.2412) X_99 = STEINER POINT (0.1109, 0.4322) X_732 = EVEN (- 2, 2) INFINITY POINT (0.9745, 0.5915) X_385 = -HIRST INVERSE OF X(6) (2.2863, 2.0795) X_698 = EVEN (- 4, - 2) INFINITY POINT (1.0503, 0.4852) X_2076 = INVERSE-IN-CIRCUMCIRCLE OF X(39) (1.3982, 1.5854) A B C X3 X39 X6 X141 X384 X99 X732 X385 X698 X2076 (a, b, c) = (5, 6, 7) | AB = 1

X2076 (INVERSE-IN-CIRCUMCIRCLE OF X39) constructed on acute reference triangle \((a, b, c) = (5, 6, 7)\) with unit baseline AB = \(1\).

"""GEOMETOR construction model for X_2076 = INVERSE-IN-CIRCUMCIRCLE OF X_39."""

        from __future__ import annotations

        from pathlib import Path

        import sympy.geometry as spg
        from geometor.model import Model

        from geometor.etc.ops import (
            central_line,
            ceva_conjugate,
            circumcenter_of,
            construct_baseline_triangle,
            create_model,
            eval_trilinear_point,
            promote_point_to_top,
            symmedian_point_of,
        )
        from geometor.etc.render import write_center_svg


        def construct_x_02076(
            model: Model, A: spg.Point, B: spg.Point, C: spg.Point
        ) -> spg.Point:
            """Construct X_2076 = INVERSE-IN-CIRCUMCIRCLE OF X_39 on reference triangle ABC."""
            X_694 = eval_trilinear_point(model, A, B, C, 'a/(a**(4) - b**(2)*c**(2))', ID="X_694", classes=["center"])
            X_6 = symmedian_point_of(model, A, B, C, ID="X_6", classes=["center"])
            X_2076 = ceva_conjugate(model, A, B, C, X_694, X_6, ID="X_2076", classes=["selected", "target"])
            X_3 = circumcenter_of(model, A, B, C, ID="X_3", classes=["center", "incident"])
            central_line(model, X_3, X_6, 3, 6, incident=True)
            X_141 = eval_trilinear_point(model, A, B, C, 'b*c*(b**(2) + c**(2))', ID="X_141", classes=["center", "incident"])
            X_384 = eval_trilinear_point(model, A, B, C, 'b*c*(a**(4) + b**(2)*c**(2))', ID="X_384", classes=["center", "incident"])
            central_line(model, X_141, X_384, 141, 384, incident=True)
            X_99 = eval_trilinear_point(model, A, B, C, 'b*c/(b**(2) - c**(2))', ID="X_99", classes=["center", "incident"])
            X_732 = eval_trilinear_point(model, A, B, C, '(a **(-3)*(b**(2) + c**(2)) - a**(1)*(b **(-2) + c **(-2)))', ID="X_732", classes=["center", "incident"])
            central_line(model, X_99, X_732, 99, 732, incident=True)
            return promote_point_to_top(model, X_2076)


        def build_model(
            sides: tuple[float, float, float] = (5.0, 6.0, 7.0),
            show_guides: bool = False,
        ) -> Model:
            """Build a `geometor.model.Model` for X_2076 on the given reference triangle."""
            model = create_model('X_2076 = INVERSE-IN-CIRCUMCIRCLE OF X_39')
            A, B, C = construct_baseline_triangle(model, *sides, show_guides=show_guides)
            construct_x_02076(model, A, B, C)
            return model


        if __name__ == "__main__":
            here = Path(__file__).resolve().parent
            model_acute = build_model((5.0, 6.0, 7.0))
            model_acute.save(str(here / "x-02076.json"))
            write_center_svg(
                model_acute,
                here / "x-02076.svg",
                subtitle="(a, b, c) = (5, 6, 7) | AB = 1",
            )