G.233 figures similar polygon — Code¶
Figures which are similar to the same polygon are also similar to one another.
"""Programmatic construction for Book VI, Proposition 21 (VI.21).
Figures which are similar to the same rectilineal figure are also similar to one another.
"""
from __future__ import annotations
from geometor.model import Model
def construct_g1() -> Model:
"""Construct the figure for 0246.g1 (VI.21) using geometor.model."""
model = Model("VI.21")
# 1. Similar rectilineal figure A
A1 = model.set_point(16.0, -48.0, classes=["given"], ID="A1")
A2 = model.set_point(166.0, -86.0, classes=["given"], ID="A2")
A3 = model.set_point(179.0, -153.0, classes=["given"], ID="A3")
A4 = model.set_point(52.0, -153.0, classes=["given"], ID="A4")
model.set_segment(A1, A2)
model.set_segment(A2, A3)
model.set_segment(A3, A4)
model.set_segment(A4, A1)
model.set_polygon([A1, A2, A3, A4])
# 2. Similar rectilineal figure B
B1 = model.set_point(231.0, -86.0, classes=["given"], ID="B1")
B2 = model.set_point(328.0, -112.0, classes=["given"], ID="B2")
B3 = model.set_point(336.0, -154.0, classes=["given"], ID="B3")
B4 = model.set_point(254.0, -154.0, classes=["given"], ID="B4")
model.set_segment(B1, B2)
model.set_segment(B2, B3)
model.set_segment(B3, B4)
model.set_segment(B4, B1)
model.set_polygon([B1, B2, B3, B4])
# 3. Similar rectilineal figure C
C1 = model.set_point(397.0, -102.0, classes=["given"], ID="C1")
C2 = model.set_point(468.0, -121.0, classes=["given"], ID="C2")
C3 = model.set_point(474.0, -154.0, classes=["given"], ID="C3")
C4 = model.set_point(415.0, -154.0, classes=["given"], ID="C4")
model.set_segment(C1, C2)
model.set_segment(C2, C3)
model.set_segment(C3, C4)
model.set_segment(C4, C1)
model.set_polygon([C1, C2, C3, C4])
return model
if __name__ == "__main__":
construct_g1()