X3734

X6com(1st BROCARD TRIANGLE)

Let A'B'C' be the 1st Brocard triangle. Let A″ be the trilinear pole, with respect to A'B'C', of line BC, and define B″ and C″ cyclically. The lines A'A″, B'B″, C'C″ concur in X3734.
< 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) { 2, 99 }: Central Line L(2, 99) { 32, 76 }: Central Line L(32, 76) { 30, 141 }: Central Line L(30, 141) { 83, 194 }: Central Line L(83, 194) { 183, 187 }: Central Line L(183, 187) { 6, 538 }: Central Line L(6, 538) A = Vertex A (0.0000, 0.0000) B = Vertex B (1.0000, 0.0000) C = Vertex C (0.6122, 0.5999) X_2 = CENTROID (0.5374, 0.2000) X_99 = STEINER POINT (0.1109, 0.4322) X_32 = 3rd POWER POINT (0.6400, 0.3332) X_76 = 3rd BROCARD POINT (0.4567, 0.1388) X_30 = EULER INFINITY POINT (0.7469, 0.7481) X_141 = COMPLEMENT OF SYMMEDIAN POINT (0.5061, 0.1663) X_83 = CEVAPOINT OF CENTROID AND SYMMEDIAN POINT (0.5651, 0.2360) X_194 = -CEVA CONJUGATE OF X(2) (0.6989, 0.3222) X_183 = TRILINEAR PRODUCT X(75)X(182) (0.4700, 0.1275) X_187 = INVERSE-IN-CIRCUMCIRCLE OF X(6) (SCHOUTE CENTER) (1.1986, 1.2559) X_6 = SYMMEDIAN POINT (LEMOINE POINT, GREBE POINT) (0.6000, 0.2672) X_538 = DIRECTION OF VECTOR AX + BX + CX, where X = X(39) (1.0053, 0.5542) X_3734 = com(1st BROCARD TRIANGLE) (0.5222, 0.2083) A B C X2 X99 X32 X76 X30 X141 X83 X194 X183 X187 X6 X538 X3734 (a, b, c) = (5, 6, 7) | AB = 1

X3734 (X6com(1st BROCARD TRIANGLE)) constructed on acute reference triangle \((a, b, c) = (5, 6, 7)\) with unit baseline AB = \(1\).

"""GEOMETOR construction model for X_3734 = X_6com(1st BROCARD TRIANGLE)."""

        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,
            centroid_of,
            construct_baseline_triangle,
            create_model,
            eval_barycentric_point,
            eval_trilinear_point,
            promote_point_to_top,
        )
        from geometor.etc.render import write_center_svg


        def construct_x_03734(
            model: Model, A: spg.Point, B: spg.Point, C: spg.Point
        ) -> spg.Point:
            """Construct X_3734 = X_6com(1st BROCARD TRIANGLE) on reference triangle ABC."""
            X_3734 = eval_barycentric_point(model, A, B, C, '(a**(4) + 2*b**(2)*c**(2))', ID="X_3734", classes=["selected", "target"])
            X_2 = centroid_of(model, A, B, C, ID="X_2", classes=["center", "incident"])
            X_99 = eval_trilinear_point(model, A, B, C, 'b*c/(b**(2) - c**(2))', ID="X_99", classes=["center", "incident"])
            central_line(model, X_2, X_99, 2, 99, incident=True)
            X_32 = eval_trilinear_point(model, A, B, C, 'a**(3)', ID="X_32", classes=["center", "incident"])
            X_76 = eval_trilinear_point(model, A, B, C, '1/a**(3)', ID="X_76", classes=["center", "incident"])
            central_line(model, X_32, X_76, 32, 76, incident=True)
            X_30 = eval_trilinear_point(model, A, B, C, 'cos(A) - 2*cos(B)*cos(C)', ID="X_30", classes=["center", "incident"])
            X_141 = eval_trilinear_point(model, A, B, C, 'b*c*(b**(2) + c**(2))', ID="X_141", classes=["center", "incident"])
            central_line(model, X_30, X_141, 30, 141, incident=True)
            return promote_point_to_top(model, X_3734)


        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_3734 on the given reference triangle."""
            model = create_model('X_3734 = X_6com(1st BROCARD TRIANGLE)')
            A, B, C = construct_baseline_triangle(model, *sides, show_guides=show_guides)
            construct_x_03734(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-03734.json"))
            write_center_svg(
                model_acute,
                here / "x-03734.svg",
                subtitle="(a, b, c) = (5, 6, 7) | AB = 1",
            )