G.401 find medial segments commensurable in square only which — Code

X.27

A B C D
"""Programmatic construction for Book X, Proposition 27 (X.27)."""

        from __future__ import annotations

        from geometor.model import Model


        def construct_g1() -> Model:
            """Construct the figure 0064.g1 using geometor.model."""
            model = Model("X.27")

            # Rational straight lines A, B and medial straight lines C, D
            A_t = model.set_point(24.0, -15.0, classes=["given"], ID="A")
            A_b = model.set_point(24.0, -166.0, classes=["given"], ID="A_b")

            B_t = model.set_point(50.5, -50.0, classes=["given"], ID="B")
            B_b = model.set_point(50.5, -166.0, classes=["given"], ID="B_b")

            C_t = model.set_point(95.5, -15.0, ID="C")
            C_b = model.set_point(95.5, -116.0, ID="C_b")

            D_t = model.set_point(120.5, -15.0, ID="D")
            D_b = model.set_point(120.5, -89.0, ID="D_b")

            # Base lines
            model.construct_line(A_t, A_b)
            model.construct_line(B_t, B_b)
            model.construct_line(C_t, C_b)
            model.construct_line(D_t, D_b)

            # Segments
            model.set_segment(A_t, A_b)
            model.set_segment(B_t, B_b)
            model.set_segment(C_t, C_b)
            model.set_segment(D_t, D_b)

            return model


        if __name__ == "__main__":
            construct_g1()