G.49 hinge theorem — Code

I.24

If two triangles have two sides equal to two sides respectively, the one with the greater included angle has the greater base.
A B C D E F G
"""Programmatic construction for Book I, Proposition 24 (I.24).

        If two triangles have the two sides equal to two sides respectively, but have the one of the angles contained by the equal straight lines greater than the other, they will also have the base greater than the base.
        """

        from __future__ import annotations

        from geometor.model import Model


        def construct_g1() -> Model:
            """Construct the figure for 0310.g2 (I.24) using geometor.model."""
            model = Model("I.24")

            # Points
            pt_A = model.set_point(46.5, -39.5, classes=["given"], ID="A")
            pt_B = model.set_point(10.5, -140, classes=["given"], ID="B")
            pt_C = model.set_point(101, -114, classes=["given"], ID="C")
            pt_D = model.set_point(207.5, -34.5, classes=["given"], ID="D")
            pt_E = model.set_point(172.5, -135, classes=["given"], ID="E")
            pt_F = model.set_point(208, -138, classes=["given"], ID="F")
            pt_G = model.set_point(260, -110, classes=["given"], ID="G")

            # Segments
            model.set_segment(pt_A, pt_B)
            model.set_segment(pt_A, pt_C)
            model.set_segment(pt_B, pt_C)
            model.set_segment(pt_D, pt_E)
            model.set_segment(pt_D, pt_F)
            model.set_segment(pt_E, pt_F)
            model.set_segment(pt_D, pt_G)
            model.set_segment(pt_E, pt_G)
            model.set_segment(pt_F, pt_G)

            # Polygons
            model.set_polygon([pt_A, pt_B, pt_C])
            model.set_polygon([pt_D, pt_E, pt_F])
            model.set_polygon([pt_D, pt_E, pt_G])
            model.set_polygon([pt_D, pt_F, pt_G])
            model.set_polygon([pt_E, pt_F, pt_G])

            # Angles (Wedges)
            model.set_wedge(pt_A, pt_B, pt_B, pt_C)
            model.set_wedge(pt_D, pt_E, pt_E, pt_F)
            model.set_wedge(pt_D, pt_E, pt_E, pt_G)
            model.set_wedge(pt_D, pt_F, pt_F, pt_G)
            model.set_wedge(pt_G, pt_D, pt_D, pt_F)
            model.set_wedge(pt_F, pt_D, pt_D, pt_G)
            model.set_wedge(pt_G, pt_E, pt_E, pt_F)
            model.set_wedge(pt_F, pt_E, pt_E, pt_G)

            return model


        if __name__ == "__main__":
            construct_g1()