Zentrische Streckung einer Geraden
Author: Ralf Schaper

Z = Intersect(xAxis, yAxis)
B = (4, 0)
C = Point(xAxis)
a = Segment(Z, B)
B' = Dilate(B, 1.5, Z)
b = Segment(B, B')
e = OrthogonalLine(C, xAxis)
E = Point(xAxis)
abstandAB = Distance(Z, B)
TextAB: "\overline{" + (Name[Z]) + (Name[B]) + "} \, = \, " + abstandAB
abstandAB' = Distance(Z, B')
TextAB': "\overline{" + (Name[Z]) + (Name[B']) + "} \, = \, " + abstandAB'
F = Point(e)
g = Segment(Z, F)
F' = Dilate(F, 1.5, Z)
h = Segment(F, F')

Tool: Spitzbogen1
Input: A, B
Output: f, e

c = Circle(A, B)
d = Circle(B, A)
C, D = Intersect(c, d)
e = CircleArc(A, B, C)
f = CircleArc(B, C, A)

Tool: Werkzeug2
Input: D, B, C
Output: c

a = LineBisector(B, C)
c = CircleArc(D, C, B)

Tool: Bogen_1
Input: B, C, D
Output: c

a = LineBisector(B, C)
c = CircleArc(D, C, B)

Tool: Vierpass
Input: A, B, C
Output: c, h, h'_1, h', k

c = Circle(A, B)
B' = Rotate(B, 45°, A)
a = Line(A, B')
b = Line(C, A)
d = Line(A, B)
e = Line(B, b)
D = Intersect(a, e)
f = AngularBisector(A, D, B)
E = Intersect(f, d)
g = OrthogonalLine(E, a)
F = Intersect(g, a)
F' = Mirror(F, d)
h = CircleArc(E, F', F)
F'' = Mirror(F', b)
F'_1 = Mirror(F, b)
h' = Arc(Mirror[Circle[E, F'], b], F'', F'_1)
F''_1 = Mirror(F', a)
F'_2 = Mirror(F, a)
h'_1 = Arc(Mirror[Circle[E, F'], a], F''_1, F'_2)
G = Mirror(F''_1, d)
H = Mirror(F'_2, d)
k = Arc(Mirror[Mirror[Circle[E, F'], a], d], G, H)

Tool: Sechspass
Input: A, B, C
Output: c, k, k', k'_1, p, p', q

c = Circle(A, B)
a = Line(C, A)
b = Line(A, B)
d = Circle(B, A)
D, E = Intersect(c, d)
e = Line(A, D)
g = Line(C, b)
F = Intersect(g, e)
h = AngularBisector(C, F, A)
G = Intersect(h, a)
i = OrthogonalLine(G, e)
H = Intersect(i, e)
H' = Mirror(H, a)
k = CircleArc(G, H, H')
H'_1 = Mirror(H, b)
H'' = Mirror(H', b)
k' = Arc(Mirror[Circle[G, H], b], H'_1, H'')
H'_2 = Mirror(H, e)
H''_1 = Mirror(H', e)
k'_1 = Arc(Mirror[Circle[G, H], e], H'_2, H''_1)
I = Mirror(H'_2, a)
J = Mirror(H''_1, a)
p = Arc(Mirror[Mirror[Circle[G, H], e], a], I, J)
K = Mirror(H'_2, b)
L = Mirror(H''_1, b)
q = Arc(Mirror[Mirror[Circle[G, H], e], b], K, L)
I' = Mirror(I, b)
J' = Mirror(J, b)
p' = Arc(Mirror[Mirror[Mirror[Circle[G, H], e], a], b], I', J')

Tool: Nonnenkopf
Input: A, B
Output: t, t', c_1, d_1, s, s', r, r'

C = Midpoint(A, B)
a = LineBisector(A, B)
D = Midpoint(C, B)
B' = Rotate(B, 59.99999999999999°, A)
c = Ray(A, B')
d = Ray(B, B')
e = LineBisector(B, B')
f = Circle(C, B)
g = Circle(C, D)
h = Circle(B, D)
E = Intersect(h, d)
E' = Mirror(E, e)
i = Ray(C, E)
F = Intersect(f, i)
G = Intersect(g, i)
j = Line(G, d)
l = OrthogonalLine(E', d)
H = Intersect(j, l)
I = Intersect(c, l)
p = Circle(I, B')
J, K = Intersect(p, l)
L = Intersect(e, j)
r = CircleArc(C, B, F)
s = CircleArc(G, F, L)
t = CircleArc(I, J, B')
c_1 = CircleArc(H, L, J)
J' = Mirror(J, a)
B'' = Mirror(B', a)
t' = Arc(Mirror[Circle[I, J], a], J', B'')
L' = Mirror(L, a)
J'_1 = Mirror(J, a)
d_1 = Arc(Mirror[Circle[H, L], a], L', J'_1)
F' = Mirror(F, a)
L'_1 = Mirror(L, a)
s' = Arc(Mirror[Circle[G, F], a], F', L'_1)
B'_1 = Mirror(B, a)
F'_1 = Mirror(F, a)
r' = Arc(Mirror[Circle[C, B], a], B'_1, F'_1)

Tool: Nonnenkopf_partiell
Input: A, B, C, J
Output: k, k', p, p', h, e

b = LineBisector(A, B)
D = Midpoint(A, B)
E = Midpoint(D, B)
c = Semicircle(D, B)
d = Semicircle(A, D)
e = Ray(A, C)
F, G = Intersect(d, e)
f = Circle(C, G)
H, I = Intersect(f, c)
g = CircleArc(C, H, G)
h = Ray(J, C)
K, L = Intersect(g, h)
k = CircleArc(C, L, G)
p = CircleArc(E, B, H)
B' = Mirror(B, b)
H' = Mirror(H, b)
p' = Arc(Mirror[Circle[E, B], b], B', H')
L' = Mirror(L, b)
G' = Mirror(G, b)
k' = Arc(Mirror[Circle[C, L], b], L', G')

Tool: Vierpass_halb
Input: A, B
Output: c, h, h', k

C = Midpoint(A, B)
c = CircleArc(C, B, A)
a = LineBisector(A, B)
D = Intersect(c, a)
b = AngularBisector(D, C, A)
d = Line(A, a)
E = Intersect(d, b)
e = AngularBisector(C, E, A)
f = Segment(A, B)
F = Intersect(e, f)
g = OrthogonalLine(F, b)
G = Intersect(b, g)
G' = Mirror(G, a)
H = Intersect(a, g)
h = CircleArc(F, G, A)
k = CircleArc(H, G', G)
G'_1 = Mirror(G, a)
A' = Mirror(A, a)
h' = Arc(Mirror[Circle[F, G], a], G'_1, A')

Tool: Dreipass
Input: A, B
Output: c, h', h''

C = Midpoint(A, B)
a = Segment(A, B)
b = LineBisector(A, B)
c = Circle(C, B)
D, E = Intersect(c, b)
d = Circle(D, C)
F, G = Intersect(c, d)
e = Line(D, a)
f = Ray(C, G)
H = Intersect(f, e)
g = AngularBisector(C, H, D)
I = Intersect(b, g)
D' = Mirror(D, g)
D'' = Mirror(D', b)
D''_1 = Mirror(D', f)
D''' = Mirror(D'', f)
h' = Arc(Mirror[Circle[I, D'], f], D''_1, D''')
J = Mirror(D''_1, b)
K = Mirror(D''', b)
h'' = Arc(Mirror[Mirror[Circle[I, D'], f], b], J, K)

Tool: Dreipass1
Input: A, B
Output: c, h, h', h''

C = Midpoint(A, B)
a = Segment(A, B)
b = LineBisector(A, B)
c = Circle(C, B)
D, E = Intersect(c, b)
d = Circle(D, C)
F, G = Intersect(c, d)
e = Line(D, a)
f = Ray(C, G)
H = Intersect(f, e)
g = AngularBisector(C, H, D)
I = Intersect(b, g)
D' = Mirror(D, g)
D'' = Mirror(D', b)
h = CircleArc(I, D', D'')
D''_1 = Mirror(D', f)
D''' = Mirror(D'', f)
h' = Arc(Mirror[Circle[I, D'], f], D''_1, D''')
J = Mirror(D''_1, b)
K = Mirror(D''', b)
h'' = Arc(Mirror[Mirror[Circle[I, D'], f], b], J, K)

Tool: Dreipass_variabel
Input: A, B, H
Output: c, k, p, p'

C = Midpoint(A, B)
b = LineBisector(A, B)
c = Circle(C, B)
D, E = Intersect(c, b)
d = Circle(D, C)
F, G = Intersect(c, d)
e = Ray(C, G)
f = Ray(C, F)
g = Circle(H, G)
g' = Mirror(g, b)
I, J = Intersect(g', g)
I' = Mirror(I, e)
I'_1 = Mirror(I, f)
h = Circle(C, H)
K, L = Intersect(h, b)
k = CircleArc(L, I'_1, I')
p = CircleArc(H, I', I)
I'' = Mirror(I', b)
I'_2 = Mirror(I, b)
p' = Arc(Mirror[Circle[H, I'], b], I'', I'_2)