Oko + rovinné zrcadlo

A_1 = (2.267317521293849, 5.977723539892179)
B_1 = (2.267317521293849, -4.022276460107821)
a = Line(A_1, B_1)
A = (-3.0755130669364004, 6.6248486412047125)
D = Point(a)
b = Ray(A, D)
E = Point(a)
c = Ray(A, E)
F = Point(a)
d = Ray(A, F)
G = Point(a)
e = Ray(A, G)
H = Point(a)
f = Ray(A, H)
g = Segment(A, D)
h = Segment(A, E)
i = Segment(A, F)
j = Segment(A, G)
k = Segment(A, H)
C' = Mirror(A, a)
D' = Mirror(D, a)
b' = Ray(C', D')
C'_1 = Mirror(A, a)
E' = Mirror(E, a)
c' = Ray(C'_1, E')
C'_2 = Mirror(A, a)
F' = Mirror(F, a)
d' = Ray(C'_2, F')
C'_3 = Mirror(A, a)
G' = Mirror(G, a)
e' = Ray(C'_3, G')
A' = Mirror(A, a)
H' = Mirror(H, a)
f' = Ray(A', H')
I = Point(b')
l = Ray(D, I)
m = Segment(D, A')
J = Point(c')
n = Ray(E, J)
K = Point(d')
p = Ray(F, K)
L = Point(e')
q = Ray(G, L)
M = Point(f')
r = Ray(H, M)
s = Segment(E, A')
t = Segment(F, A')
a_1 = Segment(G, A')
b_1 = Segment(H, A')
c_1 = Segment(A, A')
N = Intersect(a, c_1)
d_1, e_1 = AngularBisector(s, t)
O = Point(d_1)
f_1 = OrthogonalLine(O, n)
P = Intersect(f_1, n)
g_1 = Circle(O, P)
Q, R = Intersect(g_1, p)
S = Point(d_1)
k_1 = CircleArc(S, R, P)
S' = Mirror(S, O)
p_1 = CircleArc(S', P, R)
A'' = Point(d_1)
q_1 = CircumcircleArc(P, A'', R)
h_1 = Segment(E', P)
i_1 = Segment(F', R)
j_1 = Segment(P, A'')
l_1 = Segment(R, A'')
α = Angle(A, N, E)

Tool: Zlatý řez 1 (command Zlatýřez1)
Input: A, B
Output: F

a = Segment(A, B)
b = OrthogonalLine(B, a)
C = Midpoint(B, A)
c = Circle(B, C)
D = Intersect(c, b, 2)
d = Segment(A, D)
e = Circle(D, B)
E = Intersect(e, d, 1)
f = Circle(A, E)
F = Intersect(f, a, 1)

Tool: Zlatý řez 2 (command Zlatýřez2)
Input: A, B
Output: F

a = Ray(A, B)
c = OrthogonalLine(B, a)
e = Circle(B, A)
C = Midpoint(A, B)
D, E = Intersect(e, c)
f = Circle(C, E)
F = Intersect(f, a, 1)

Tool: Zlatý řez 3 (command Zlatýřez3)
Input: D, E
Output: F'

F = Zlatýřez2(D, E)
v = Vector(D, E)
F' = Translate(F, v)

Tool: nabrat poloměr (command nabratpoloměr)
Bod, bod, střed
Input: A, B, C
Output: g

u = Vector(A, B)
C' = Translate(C, u)
g = Circle(C, C')

Tool: obdélník ze 3 bodů (command obdélníkze3bodů)
Input: A, B, C
Output: b_1, a_1, d_1, e

a = Segment(A, B)
b = OrthogonalLine(B, a)
c = Line(C, a)
D = Intersect(b, c)
d = OrthogonalLine(A, a)
E = Intersect(c, d)
poly1, a_1, b_1, d_1, e = Polygon(A, B, D, E)

Tool: odpichovátko
Input: A, B, C
Output: C'

u = Vector(A, B)
C' = Translate(C, u)

Tool: přenesení úsečky (command přeneseníúsečky)
Input: A, B, C
Output: a, C'

u = Vector(A, B)
C' = Translate(C, u)
a = Segment(C, C')

Tool: zlatý trojúhelník1 (command zlatýtrojúhelník1)
Input: A, B
Output: b, a, e, F

a = Segment(A, B)
C = Zlatýřez2(B, A)
D = Zlatýřez2(A, B)
c = Circle(B, C)
d = Circle(A, D)
E, F = Intersect(c, d)
b = Segment(A, F)
e = Segment(B, F)

Tool: zlatý trojúhelník 2 (command zlatýtrojúhelník2)
Input: A, B
Output: a, h, i, G

a = Segment(A, B)
C = Zlatýřez2(B, A)
D = Zlatýřez2(A, B)
f = Circle(A, C)
g = Circle(B, D)
G, H = Intersect(f, g)
h = Segment(A, G)
i = Segment(B, G)

Tool: kruhova_inverze
poloměr, střed, vzor
Input: r, S, A
Output: A', A_1, k, l, c

c = Circle(S, r)
a = Ray(S, A)
b = OrthogonalLine(A, a)
B, C = Intersect(c, b)
d = Segment(S, C)
e = OrthogonalLine(C, d)
A' = Intersect(a, e)
f, g = Tangent(A, c)
E = Intersect(c, f, 1)
i = OrthogonalLine(E, a)
A_1 = Intersect(a, i)
k = Segment(S, A')
l = Segment(S, A)

Tool: čára
Input: A, B
Output: b

a = Line(A, B)
vzdalenostAB = Distance(A, B)
c = Circle(A, vzdalenostAB / 10)
d = Circle(B, vzdalenostAB / 10)
C = Intersect(c, a, 1)
D = Intersect(d, a, 2)
b = Segment(C, D)