G.305 numbers there fall — Code¶
If between two numbers there fall numbers in continued proportion with them, then, however many numbers fall between them in continued proportion, so many will also fall in continued proportion between the numbers which have the same ratio with the original numbers.
"""Programmatic construction for Book VIII, Proposition 8 (VIII.8)."""
from __future__ import annotations
from geometor.model import Model
def construct_g1() -> Model:
"""Construct the figure 0363.g1 using geometor.model."""
model = Model("VIII.8")
# Left column: single-letter horizontal number segments A, C, D, B, G, H, K, L
A_l = model.set_point(26.0, -14.0, classes=["given"], ID="A")
A_r = model.set_point(79.0, -14.0, ID="A_r")
C_l = model.set_point(27.0, -38.0, classes=["given"], ID="C")
C_r = model.set_point(96.0, -38.0, ID="C_r")
D_l = model.set_point(28.0, -64.0, classes=["given"], ID="D")
D_r = model.set_point(119.0, -64.0, ID="D_r")
B_l = model.set_point(28.0, -88.0, classes=["given"], ID="B")
B_r = model.set_point(153.0, -88.0, ID="B_r")
G_l = model.set_point(27.0, -105.0, classes=["given"], ID="G")
G_r = model.set_point(55.0, -105.0, ID="G_r")
H_l = model.set_point(27.0, -120.0, classes=["given"], ID="H")
H_r = model.set_point(63.0, -120.0, ID="H_r")
K_l = model.set_point(29.0, -138.0, classes=["given"], ID="K")
K_r = model.set_point(75.0, -138.0, ID="K_r")
L_l = model.set_point(28.0, -158.0, classes=["given"], ID="L")
L_r = model.set_point(93.0, -158.0, ID="L_r")
# Right column: single-letter horizontal number segments E, M, N, F
E_l = model.set_point(207.0, -14.0, classes=["given"], ID="E")
E_r = model.set_point(278.0, -14.0, ID="E_r")
M_l = model.set_point(210.0, -39.0, classes=["given"], ID="M")
M_r = model.set_point(299.0, -39.0, ID="M_r")
N_l = model.set_point(208.0, -64.0, classes=["given"], ID="N")
N_r = model.set_point(333.0, -64.0, ID="N_r")
F_l = model.set_point(206.0, -88.0, classes=["given"], ID="F")
F_r = model.set_point(377.0, -88.0, ID="F_r")
# Number segments
model.set_segment(A_l, A_r)
model.set_segment(C_l, C_r)
model.set_segment(D_l, D_r)
model.set_segment(B_l, B_r)
model.set_segment(G_l, G_r)
model.set_segment(H_l, H_r)
model.set_segment(K_l, K_r)
model.set_segment(L_l, L_r)
model.set_segment(E_l, E_r)
model.set_segment(M_l, M_r)
model.set_segment(N_l, N_r)
model.set_segment(F_l, F_r)
return model
if __name__ == "__main__":
construct_g1()