G.60 segments joining equal and parallel segments — Code

I.33

Segments joining the endpoints of equal and parallel segments in the same directions are themselves equal and parallel.
A B C D
"""Programmatic construction for Book I, I.33 (I.33).

        The straight lines joining equal and parallel straight lines (at the extremities which are) in the same directions (respectively) are themselves also equal and parallel.
        """

        from __future__ import annotations

        from geometor.model import Model


        def construct_g1() -> Model:
            """Construct the figure for 0337.g1 (I.33) using geometor.model."""
            model = Model("I.33")

            # 1. Points
            A = model.set_point(34, -15.5, classes=["given"], ID="A")
            B = model.set_point(199, -15.5, classes=["given"], ID="B")
            C = model.set_point(13, -113.5, classes=["given"], ID="C")
            D = model.set_point(178, -113.5, classes=["given"], ID="D")

            # 3. Segments
            model.set_segment(A, B)
            model.set_segment(C, D)
            model.set_segment(A, C)
            model.set_segment(B, D)
            model.set_segment(B, C)

            # 5. Polygons (Triangles, Parallelograms, Trapezia, Squares)
            model.set_polygon([A, B, C])
            model.set_polygon([D, C, B])
            model.set_polygon([A, C, D, B])

            # 6. Angles (Wedges)
            model.set_wedge(B, A, A, C)
            model.set_wedge(C, B, B, D)
            model.set_wedge(C, A, A, B)
            model.set_wedge(B, C, C, D)

            return model


        if __name__ == "__main__":
            construct_g1()