Octogone
Author: Patrice Debart

A = (4, 0)
O = (0, 0)
c = Circle(O, A)
dOA = Line(O, A)
dOC = OrthogonalLine(O, dOA)
E = Intersect(c, dOA, 2.0)
G = Intersect(c, dOC, 1.0)
C = Intersect(c, dOC, 2.0)
AE = Segment(A, E)
CG = Segment(C, G)
AC = Segment(A, C)
CE = Segment(C, E)
EG = Segment(E, G)
GA = Segment(G, A)
c_1 = Circle(C, O)
c_2 = Circle(A, O)
c_3 = Circle(E, O)
I = Intersect(c_1, c_2, 2.0)
J = Intersect(c_1, c_3, 2.0)
dOI = Line(O, I)
dOJ = Line(O, J)
B = Intersect(c, dOI, 2.0)
F = Intersect(c, dOI, 1.0)
H = Intersect(c, dOJ, 1.0)
D = Intersect(c, dOJ, 2.0)
AB = Segment(A, B)
BC = Segment(B, C)
CD = Segment(C, D)
DE = Segment(D, E)
EF = Segment(E, F)
FG = Segment(F, G)
GH = Segment(G, H)
HA = Segment(H, A)