X1682

INSIMILICENTER(INCIRCLE, APOLLONIUS CIRCLE)

The exsimilicenter of the incircle and Apollonius circle is X181. Also, the triangle A'B'C' formed (as at X2092 by the intersections of the Apollonius circle and the excircles is perspective to the cevian triangle of X1, and the perspector is X1682. (Paul Yiu, Hyacinthos #8076, 10/01/03)
< A B C >: Reference Triangle △ABC < P_a P_b P_c >: Cevian Triangle △P_a P_b P_c [ A B ]: Sideline AB (Base c = 1) [ B C ]: Sideline BC (Side a) [ C A ]: Sideline CA (Side b) [ A P_a ]: A-Cevian A–P_a [ B P_b ]: B-Cevian B–P_b [ C P_c ]: C-Cevian C–P_c { 10, 11 }: Central Line L(10, 11) { 1, 181 }: Central Line L(1, 181) { 55, 386 }: Central Line L(55, 386) { 56, 573 }: Central Line L(56, 573) A = Vertex A (0.0000, 0.0000) B = Vertex B (1.0000, 0.0000) C = Vertex C (0.6122, 0.5999) P_a = Cevian Trace P_a on BC (0.8264, 0.2686) P_b = Cevian Trace P_b on CA (0.2776, 0.2720) P_c = Cevian Trace P_c on AB (0.5057, 0.0000) X_10 = SPIEKER CENTER (0.5204, 0.1833) X_11 = FEUERBACH POINT (0.7347, 0.0667) X_1 = INCENTER (0.5714, 0.2333) X_181 = APOLLONIUS POINT (0.6163, 0.3093) X_55 = INSIMILICENTER(CIRCUMCIRCLE, INCIRCLE) (0.5490, 0.1921) X_386 = INVERSE-IN-BROCARD-CIRCLE OF X(58) (0.5912, 0.2526) X_56 = EXSIMILICENTER(CIRCUMCIRCLE, INCIRCLE) (0.6316, 0.3438) X_573 = ORTHOHARMONIC OF X(58) (0.4583, 0.2009) X_1682 = INSIMILICENTER(INCIRCLE, APOLLONIUS CIRCLE) (0.5367, 0.1744) A B C Pa Pb Pc X10 X11 X1 X181 X55 X386 X56 X573 X1682 (a, b, c) = (5, 6, 7) | AB = 1

X1682 (INSIMILICENTER(INCIRCLE, APOLLONIUS CIRCLE)) constructed on acute reference triangle \((a, b, c) = (5, 6, 7)\) with unit baseline AB = \(1\).

"""GEOMETOR construction model for X_1682 = INSIMILICENTER(INCIRCLE, APOLLONIUS CIRCLE)."""

        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,
            feuerbach_point_of,
            incenter_of,
            promote_point_to_top,
            spieker_center_of,
        )
        from geometor.etc.render import write_center_svg


        def construct_x_01682(
            model: Model, A: spg.Point, B: spg.Point, C: spg.Point
        ) -> spg.Point:
            """Construct X_1682 = INSIMILICENTER(INCIRCLE, APOLLONIUS CIRCLE) on reference triangle ABC."""
            X_1682 = eval_trilinear_point(model, A, B, C, '(s*cos(A/2) - r*sin(A/2))**(2)', ID="X_1682", classes=["selected", "target"])
            X_10 = spieker_center_of(model, A, B, C, ID="X_10", classes=["center", "incident"])
            X_11 = feuerbach_point_of(model, A, B, C, ID="X_11", classes=["center", "incident"])
            central_line(model, X_10, X_11, 10, 11, incident=True)
            X_1 = incenter_of(model, A, B, C, ID="X_1", classes=["center", "incident"])
            X_181 = eval_trilinear_point(model, A, B, C, 'a*(b + c)**(2)/(b + c - a)', ID="X_181", classes=["center", "incident"])
            central_line(model, X_1, X_181, 1, 181, incident=True)
            X_55 = eval_trilinear_point(model, A, B, C, 'a*(b + c - a)', ID="X_55", classes=["center", "incident"])
            X_386 = eval_trilinear_point(model, A, B, C, 'a*(b**(2) + c**(2) + b*c + c*a + a*b)', ID="X_386", classes=["center", "incident"])
            central_line(model, X_55, X_386, 55, 386, incident=True)
            return promote_point_to_top(model, X_1682)


        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_1682 on the given reference triangle."""
            model = create_model('X_1682 = INSIMILICENTER(INCIRCLE, APOLLONIUS CIRCLE)')
            A, B, C = construct_baseline_triangle(model, *sides, show_guides=show_guides)
            construct_x_01682(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-01682.json"))
            write_center_svg(
                model_acute,
                here / "x-01682.svg",
                subtitle="(a, b, c) = (5, 6, 7) | AB = 1",
            )