bh = 0 (slider from -1 to 3, step 0.5)
A = (5, 5)
m = 1 (slider from 0 to 3, step 0.5)
bl = 10 (slider from 1 to 20, step 0.5)
B = Point(Circle[A, bl])
b = Segment(A, B)
BB = Midpoint(b)
H: BB + (0, bh)
α = 0 rad (slider from 0 to 6.283185307179586, step 0.08726646259971647)
pC = 6 (slider from 1 to 10, step 0.5)
phA = 3 (slider from 1 to 10, step 0.5)
bC = 8 (slider from 1 to 10, step 0.5)
bA = 6 (slider from 1 to 10, step 0.5)
bf = 5.5 (slider from 1 to 10, step 0.5)
f = 0 (slider from -1 to 1, step 0.5)
B' = Rotate(BB - (0, 4), α, H)
β = Angle(B, BB, B')
c = Circle(H, m)
r = Segment(H, B')
C = Intersect(c, r, 1)
cpC = Circle(C, pC)
cphA = Circle(A, phA)
Ap = Intersect(cpC, cphA, 2)
ApC = Segment(C, Ap)
ApA = Segment(A, Ap)
Aj1 = OrthogonalLine(A, ApA)
Ah = Intersect(cphA, Aj1, 2)
ApAh = Segment(Ap, Ah)
AhA = Segment(A, Ah)
cbC = Circle(C, bC)
cbA = Circle(A, bA)
Ab = Intersect(cbC, cbA, 1)
AbA = Segment(A, Ab)
AbC = Segment(C, Ab)
Aj2 = Line(Ah, AbA)
Aj3 = Line(Ab, AhA)
Ak = Intersect(Aj2, Aj3)
AkAh = Segment(Ah, Ak)
AkAb = Segment(Ab, Ak)
Aj4 = OrthogonalLine(Ab, AkAb)
Acbf = Circle(Ab, bf)
Af = Intersect(Acbf, Aj4, 2)
AbAf = Segment(Ab, Af)
AkAf = Segment(Ak, Af)
At: Af - (f, 0)
AfAt = Segment(Af, At)
cphB = Circle(B, phA)
Bp = Intersect(cpC, cphB, 1)
BpB = Segment(Bp, B)
BpC = Segment(Bp, C)
Bj1 = OrthogonalLine(B, BpB)
Bh = Intersect(cphB, Bj1, 2)
BhBp = Segment(Bh, Bp)
BhB = Segment(Bh, B)
cbB = Circle(B, bA)
Bb = Intersect(cbC, cbB, 2)
BbB = Segment(Bb, B)
BbC = Segment(Bb, C)
Bj2 = Line(Bb, Bj1)
Bj3 = Line(Bh, BbB)
Bk = Intersect(Bj2, Bj3)
BkBb = Segment(Bk, Bb)
BkBh = Segment(Bk, Bh)
Bj4 = OrthogonalLine(Bb, Bj2)
Bcbf = Circle(Bb, bf)
Bf = Intersect(Bcbf, Bj4, 1)
BfBb = Segment(Bf, Bb)
BfBk = Segment(Bf, Bk)
Bt: Bf + (f, 0)
BtBf = Segment(Bt, Bf)
R = Rotate(C, 180*°, H)
cpR = Circle(R, pC)
Rp = Intersect(cphA, cpR, 1)
RpA = Segment(Rp, A)
RpR = Segment(Rp, R)
Rj1 = OrthogonalLine(A, RpA)
Rh = Intersect(cphA, Rj1, 1)
RhRp = Segment(Rh, Rp)
RhA = Segment(Rh, A)
cbR = Circle(R, bC)
Rb = Intersect(cbA, cbR, 2)
RbA = Segment(Rb, A)
RbR = Segment(Rb, R)
Rj2 = Line(Rb, Rj1)
Rj3 = Line(Rh, RbA)
Rk = Intersect(Rj2, Rj3)
RkRh = Segment(Rk, Rh)
RkRb = Segment(Rk, Rb)
Rj4 = OrthogonalLine(Rb, Rj2)
Rcbf = Circle(Rb, bf)
Rf = Intersect(Rcbf, Rj4, 1)
RfRb = Segment(Rf, Rb)
RfRk = Segment(Rf, Rk)
Rt: Rf - (f, 0)
RtRf = Segment(Rt, Rf)
Sp = Intersect(cphB, cpR, 2)
SpR = Segment(Sp, R)
SpB = Segment(Sp, B)
Sj1 = OrthogonalLine(B, SpB)
Sh = Intersect(cphB, Sj1, 2)
ShSp = Segment(Sh, Sp)
ShB = Segment(Sh, B)
Sb = Intersect(cbB, cbR, 1)
SbB = Segment(Sb, B)
SbR = Segment(Sb, R)
Sj2 = Line(Sb, Sj1)
Sj3 = Line(Sh, SbB)
Sk = Intersect(Sj2, Sj3)
SkSb = Segment(Sk, Sb)
SkSh = Segment(Sk, Sh)
Scbf = Circle(Sb, bf)
Sj4 = OrthogonalLine(Sb, Sj2)
Sf = Intersect(Scbf, Sj4, 1)
SfSb = Segment(Sf, Sb)
SfSk = Segment(Sf, Sk)
St: Sf + (f, 0)
StSf = Segment(Sf, St)
a = Segment(H, BB)