p = 1 (slider from 1 to 5, step 1)
q = 3 (slider from 1 to 5, step 1)
A = Point(xAxis)
B = Point(xAxis)
O = Intersect(xAxis, yAxis)
a = Distance(O, A)
TextOA: Name[O] + (Name[A]) + " = " + a
b = Distance(O, B)
TextOB: Name[O] + (Name[B]) + " = " + b
h(x) = ((x - a)^(p) * (x - b)^(q))
k = -3 (slider from -5 to 5, step 1)
f(x) = x / k + h(x) + 4
g = OrthogonalLine(A, xAxis)
i = OrthogonalLine(B, xAxis)
R = Intersect(f, g, 1)
S = Intersect(f, i, 1)
j = Line(R, S)
c: ((a * q) + (b * p)) / (p + q)
d = Circle(O, c)
E, C = Intersect(d, xAxis)
l = OrthogonalLine(C, xAxis)
G = Intersect(f, l)
m = Tangent(G, f)
D = Point(xAxis)
n = OrthogonalLine(D, xAxis)
F = Intersect(f, n, 1)
r = Tangent(F, f)