GC-01.07 · Symbolic Model & Source¶
Companion symbolic Python construction for GC-01.07 · Bùi Quang Tuân’s Five-Step Three-Circle Secant (GC-01.07).
Programmatic Usage¶
from geometor.divine.catalog import build_construction
model, cert = build_construction("GC-01.07")
assert cert.ratio_expr == sp.GoldenRatio
Exact Builder Implementation¶
def build_bui_5step() -> ConstructionResult:
"""Bùi Quang Tuân's 5-step collinear three-circle secant construction."""
m = new_catalog_model("bui-5step")
O = m.set_point(0, 0, classes=["given"], ID="O")
B = m.set_point(-1, 0, classes=["given"], ID="B")
# 1. Line L, 2. Circle O(B), 3. Circle B(A), 4. Circle C(O), 5. Line MN
ln_l = m.construct_line(O, B, ID="L")
c_o = m.construct_circle(O, B, classes=["primary"], ID="cO")
A = m.intersect(c_o, ln_l, other_than=B, ID="A")
c_ba = m.construct_circle(B, A, classes=["compass"], ID="cBA")
C = m.intersect(c_ba, ln_l, other_than=A, ID="C")
c_co = m.construct_circle(C, O, classes=["compass"], ID="cCO")
M = m.intersect(c_co, c_o, side_of=(O, A, 1), ID="M")
N = m.intersect(c_co, c_ba, side_of=(O, A, -1), ID="N")
ln_mn = m.construct_line(M, N, classes=["golden"], ID="MN")
m.intersect(ln_mn, c_o, other_than=M, classes=["golden"], ID="P")
return make_result(m, ("M", "P"), ("P", "N"), ("M", "P", "N"))
Exact Symbolic Point Coordinates¶
All points in bui-5step are certified free of floating-point approximations over \(\mathbb{Q}(\sqrt{5}, \sqrt{7})\):
Point |
Exact \(x\) |
Exact \(y\) |
|---|---|---|
|
\(0\) |
\(0\) |
|
\(-1\) |
\(0\) |
|
\(1\) |
\(0\) |
|
\(-3\) |
\(0\) |
|
\(- \frac{1}{6}\) |
\(\frac{\sqrt{35}}{6}\) |
|
\(- \frac{3}{4}\) |
\(- \frac{3 \sqrt{7}}{4}\) |
|
\(\frac{- 21 \sqrt{2} \sqrt{\sqrt{5} + 3} - 14 \sqrt{5} + 7 \sqrt{10} \sqrt{\sqrt{5} + 3}}{96} - \frac{1}{48}\) |
\(\frac{- 17 \sqrt{14} \sqrt{\sqrt{5} + 3} - 2 \sqrt{7} + 2 \sqrt{35} + 3 \sqrt{70} \sqrt{\sqrt{5} + 3}}{96}\) |
Certified Golden Ratio: MP / PN = GoldenRatio.