X478

CENTER OF YIU CONIC

Center of the Yiu conic, which passes through the points outside the circumcircle at which the excircles of ABC are tangent to the sidelines of ABC. See Paul Yiu’s
< 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) { 6, 19 }: Central Line L(6, 19) { 222, 226 }: Central Line L(222, 226) { 109, 573 }: Central Line L(109, 573) { 69, 651 }: Central Line L(69, 651) { 198, 577 }: Central Line L(198, 577) { 9, 1038 }: Central Line L(9, 1038) A = Vertex A (0.0000, 0.0000) B = Vertex B (1.0000, 0.0000) C = Vertex C (0.6122, 0.5999) X_6 = SYMMEDIAN POINT (LEMOINE POINT, GREBE POINT) (0.6000, 0.2672) X_19 = CLAWSON POINT (0.6246, 0.4244) X_222 = -CEVA CONJUGATE OF X(56) (0.5653, 0.1568) X_226 = -CEVA CONJUGATE OF X(65) (0.5778, 0.2588) X_109 = Ψ(INCENTER, CIRCUMCENTER) (0.3636, 0.5938) X_573 = ORTHOHARMONIC OF X(58) (0.4583, 0.2009) X_69 = SYMMEDIAN POINT OF THE ANTICOMPLEMENTARY TRIANGLE (0.4122, 0.0654) X_651 = TRILINEAR POLE OF LINE X(1)X(3) (0.3048, 0.5599) X_198 = -CEVA CONJUGATE OF X(6) (0.4741, -0.0381) X_577 = HARMONIC OF X(216) (0.4663, 0.0464) X_9 = MITTENPUNKT (0.5110, 0.1615) X_1038 = INTERSECTION OF LINES X(1)X(3) AND X(2)X(34) (0.5104, 0.1211) X_478 = CENTER OF YIU CONIC (0.5030, -0.3520) A B C X6 X19 X222 X226 X109 X573 X69 X651 X198 X577 X9 X1038 X478 (a, b, c) = (5, 6, 7) | AB = 1

X478 (CENTER OF YIU CONIC) constructed on acute reference triangle \((a, b, c) = (5, 6, 7)\) with unit baseline AB = \(1\).

"""GEOMETOR construction model for X_478 = CENTER OF YIU CONIC."""

        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,
            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_00478(
            model: Model, A: spg.Point, B: spg.Point, C: spg.Point
        ) -> spg.Point:
            """Construct X_478 = CENTER OF YIU CONIC on reference triangle ABC."""
            X_478 = eval_trilinear_point(model, A, B, C, 'a*(a**(4) - 2*a*b*c*(b + c - a) - (b**(2) - c**(2))**(2))/(b + c - a)', ID="X_478", classes=["selected", "target"])
            X_6 = symmedian_point_of(model, A, B, C, ID="X_6", classes=["center", "incident"])
            X_19 = eval_trilinear_point(model, A, B, C, 'tan(A)', ID="X_19", classes=["center", "incident"])
            central_line(model, X_6, X_19, 6, 19, incident=True)
            X_222 = eval_trilinear_point(model, A, B, C, 'cos(A)*tan(A/2)', ID="X_222", classes=["center", "incident"])
            X_226 = eval_trilinear_point(model, A, B, C, '(csc(A))*(cos(B) + cos(C))', ID="X_226", classes=["center", "incident"])
            central_line(model, X_222, X_226, 222, 226, incident=True)
            X_109 = eval_trilinear_point(model, A, B, C, 'a/(cos(B) - cos(C))', ID="X_109", classes=["center", "incident"])
            X_573 = eval_trilinear_point(model, A, B, C, 'cos(A + U)', ID="X_573", classes=["center", "incident"])
            central_line(model, X_109, X_573, 109, 573, incident=True)
            return promote_point_to_top(model, X_478)


        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_478 on the given reference triangle."""
            model = create_model('X_478 = CENTER OF YIU CONIC')
            A, B, C = construct_baseline_triangle(model, *sides, show_guides=show_guides)
            construct_x_00478(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-00478.json"))
            write_center_svg(
                model_acute,
                here / "x-00478.svg",
                subtitle="(a, b, c) = (5, 6, 7) | AB = 1",
            )