G.208 magnitudes proportional greatest — Code¶
If four magnitudes be proportional, the greatest and the least are greater than the remaining two.
"""Programmatic construction for Book V, Proposition 25 (V.25)."""
from __future__ import annotations
from geometor.model import Model
def construct_g1() -> Model:
"""Construct the figure 0191.g1 for Book V, Proposition 25 using geometor.model."""
model = Model("V.25")
# First subdivided magnitude AB divided at G
A = model.set_point(20.00, -18.00, classes=["given"], ID="A")
G = model.set_point(125.00, -18.00, classes=["given"], ID="G")
B = model.set_point(179.00, -18.00, classes=["given"], ID="B")
# Standalone magnitude E
E_1 = model.set_point(20.00, -44.00, classes=["given"], ID="E_1")
E_2 = model.set_point(124.00, -44.00, classes=["given"], ID="E_2")
# Second subdivided magnitude CD divided at H
C = model.set_point(20.00, -70.00, classes=["given"], ID="C")
H = model.set_point(106.00, -70.00, classes=["given"], ID="H")
D = model.set_point(148.00, -70.00, classes=["given"], ID="D")
# Standalone magnitude F
F_1 = model.set_point(20.00, -95.00, classes=["given"], ID="F_1")
F_2 = model.set_point(106.00, -95.00, classes=["given"], ID="F_2")
# Base lines
model.construct_line(A, B)
model.construct_line(C, D)
# Whole and subdivided segments
model.set_segment(A, B)
model.set_segment(A, G)
model.set_segment(G, B)
model.set_segment(E_1, E_2)
model.set_segment(C, D)
model.set_segment(C, H)
model.set_segment(H, D)
model.set_segment(F_1, F_2)
# Collinear sections
model.set_section([A, G, B])
model.set_section([C, H, D])
return model
if __name__ == "__main__":
construct_g1()