G.215 triangles angle equal — Code

VI.6

If two triangles have one angle equal to one angle and the sides about the equal angles proportional, the triangles is equiangular and will have those angles equal which the corresponding sides subtend.
A B C D E F G
"""Programmatic construction for Book VI, Proposition 6 (VI.6).

        If two triangles have one angle equal to one angle and the sides about the equal angles proportional, the triangles will be equiangular.
        """

        from __future__ import annotations

        from geometor.model import Model


        def construct_g1() -> Model:
            """Construct the figure for 0211.g1 (VI.6) using geometor.model."""
            model = Model("VI.6")

            # 1. Points
            A = model.set_point(38, -19, classes=["given"], ID="A")
            B = model.set_point(26, -156, classes=["given"], ID="B")
            C = model.set_point(122, -156, classes=["given"], ID="C")
            D = model.set_point(212, -39, classes=["given"], ID="D")
            E = model.set_point(204.56, -123.94, classes=["given"], ID="E")
            F = model.set_point(264.08, -123.94, classes=["given"], ID="F")
            G = model.set_point(291.08, -70.89, ID="G")

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

            # 5. Polygons (Triangles)
            model.set_polygon([A, B, C])
            model.set_polygon([D, E, F])
            model.set_polygon([D, G, F])

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

            return model


        if __name__ == "__main__":
            construct_g1()