GC-06.05 · Symbolic Model & Source¶
Companion symbolic Python construction for GC-06.05 · Jerzy Kocik’s Six-Circle Apollonian Golden Window (2010) (GC-06.05).
Programmatic Usage¶
from geometor.divine.catalog import build_construction
model, cert = build_construction("GC-06.05")
assert cert.ratio_expr == sp.GoldenRatio
Exact Builder Implementation¶
def build_kocik_golden_window() -> ConstructionResult:
"""Jerzy Kocik's six-circle Golden Window Apollonian configuration (2010)."""
m = new_catalog_model("kocik-golden-window")
s5 = sp.sqrt(5)
phi = sp.Rational(1, 2) + s5 / 2
phi2 = phi + 1
phi3 = 2 * phi + 1
O = m.set_point(0, 0, classes=["given"], ID="O")
P1 = m.set_point(-1, 0, ID="P1")
P2 = m.set_point(1, 0, classes=["given"], ID="P2")
C1 = m.set_point(-sp.Rational(1, 2), 0, guide=True, ID="C1")
C2 = m.set_point(sp.Rational(1, 2), 0, guide=True, ID="C2")
# Central unit-diameter circles
m.construct_circle(C1, O, classes=["compass"], ID="cC1")
m.construct_circle(C2, O, classes=["compass"], ID="cC2")
# Flanking golden circles of radius phi centered at +-phi^2
C3 = m.set_point(-phi2, 0, ID="C3")
C4 = m.set_point(phi2, 0, classes=["golden"], ID="C4")
A3 = m.set_point(-phi3, 0, ID="A3")
A4 = m.set_point(phi3, 0, classes=["golden"], ID="A4")
m.construct_circle(C3, P1, classes=["golden"], ID="cC3")
m.construct_circle(C4, P2, classes=["golden"], ID="cC4")
# Outer window circle of radius phi^3 = 2*phi + 1
m.construct_circle(O, A4, classes=["primary"], ID="cO")
m.construct_line(A3, A4, classes=["golden"], ID="A3A4")
# Upper & lower circles tangent to all five circles: center (0, +-2*phi^2/sqrt(5)), top (0, +-phi^3)
hu = (2 * phi2) / s5
U1 = m.set_point(0, hu, ID="U1")
U2 = m.set_point(0, -hu, ID="U2")
T_top = m.set_point(0, phi3, ID="T1")
T_bot = m.set_point(0, -phi3, ID="T2")
m.construct_circle(U1, T_top, classes=["auxiliary"], ID="cU1")
m.construct_circle(U2, T_bot, classes=["auxiliary"], ID="cU2")
return make_result(m, ("O", "C4"), ("C4", "A4"), ("O", "C4", "A4"))
Exact Symbolic Point Coordinates¶
All points in kocik-golden-window are certified free of floating-point approximations over \(\mathbb{Q}(\phi)\):
Point |
Exact \(x\) |
Exact \(y\) |
|---|---|---|
|
\(0\) |
\(0\) |
|
\(-1\) |
\(0\) |
|
\(1\) |
\(0\) |
|
\(- \frac{3}{2} - \frac{\sqrt{5}}{2}\) |
\(0\) |
|
\(\frac{\sqrt{5}}{2} + \frac{3}{2}\) |
\(0\) |
|
\(- \sqrt{5} - 2\) |
\(0\) |
|
\(2 + \sqrt{5}\) |
\(0\) |
|
\(0\) |
\(1 + \frac{3 \sqrt{5}}{5}\) |
|
\(0\) |
\(- \frac{3 \sqrt{5}}{5} - 1\) |
|
\(0\) |
\(2 + \sqrt{5}\) |
|
\(0\) |
\(- \sqrt{5} - 2\) |
Certified Golden Ratio: OC4 / C4A4 = GoldenRatio.