G.45 triangle inequality — Code¶
In any triangle, the sum of any two sides is greater than the remaining side.
"""Programmatic construction for Book I, Proposition 20 (I.20).
In any triangle two sides taken together in any manner are greater than the remaining one.
"""
from __future__ import annotations
from geometor.model import Model
def construct_g1() -> Model:
"""Construct the figure for 0300.g2 (I.20) using geometor.model."""
model = Model("I.20")
# Points
pt_B = model.set_point(20, -133, classes=["given"], ID="B")
pt_C = model.set_point(125, -133, classes=["given"], ID="C")
pt_A = model.set_point(56.5, -92.5, classes=["given"], ID="A")
pt_D = model.set_point(109, -31, classes=["given"], ID="D")
# Base Constructions (Lines and Circles)
model.construct_line(pt_B, pt_A)
# Segments
model.set_segment(pt_B, pt_C)
model.set_segment(pt_B, pt_D)
model.set_segment(pt_B, pt_A)
model.set_segment(pt_A, pt_D)
model.set_segment(pt_A, pt_C)
model.set_segment(pt_D, pt_C)
# Polygons
model.set_polygon([pt_A, pt_B, pt_C])
model.set_polygon([pt_A, pt_D, pt_C])
model.set_polygon([pt_D, pt_B, pt_C])
# Angles (Wedges)
model.set_wedge(pt_D, pt_A, pt_A, pt_C)
model.set_wedge(pt_C, pt_A, pt_A, pt_D)
model.set_wedge(pt_C, pt_B, pt_B, pt_D)
model.set_wedge(pt_A, pt_B, pt_B, pt_C)
model.set_wedge(pt_B, pt_A, pt_A, pt_C)
model.set_wedge(pt_C, pt_A, pt_A, pt_B)
return model
if __name__ == "__main__":
construct_g1()