Line - Circle

The locus of the points that are equidistant from a line and a circle
is formed, in general, by a parabola or, if they intersect, two parabolas.

Circles

The locus of the points that are equidistant from two circles 
is formed, in general, by a branch of a hyperbola or, if they intersect, an ellipse.

dr - dc = 0

dc - dc' = 0

O = (-7.04, 4.62)
op1 = false
offset = 0 (slider from 0 to 6, step 0.02)
op2 = false
A = (-6.12, 0.06)
B = (-2.84, 7.44)
r = Line(A, B)
s: 4
c = Circle(O, s)
d2O(x, y) = (x - x(O))^(2) + (y - y(O))^(2)
df(x, y) = abs((x(r) * x) + (y(r) * y) + z(r)) / sqrt((x(r))^(2) + (y(r))^(2))
O' = (-1.54, 4.76)
s': 3
c' = Circle(O', s')
d2O'(x, y) = (x - x(O'))^(2) + (y - y(O'))^(2)
ec1:=Xc - Xr = 0
ec2:=Xc - Xc' = 0
offset': 6 - offset
d = Circle(O, s + offset')
d' = Circle(O, s - offset')
r1 = Translate(r, Vector[(offset' * UnitOrthogonalVector[r])])
r2 = Translate(r, Vector[((-offset') * UnitOrthogonalVector[r])])
e' = Circle(O', s' - offset')
e = Circle(O', s' + offset')

Tool: OpSuma
Elige O y luego dos puntos
Input: O, A, B
Output: O'

C = Midpoint(A, B)
O' = Mirror(O, C)

Tool: OpResta
Elige O, el primer punto y el segundo punto
Input: O, A, B
Output: O'

B' = Mirror(B, O)
C = Midpoint(A, B')
O' = Mirror(O, C)

Tool: OpProducto
Elige O e I, y luego dos puntos
Input: O, I, A, B
Output: E

I' = Mirror(I, O)
B' = Mirror(B, O)
c = Semicircle(I', I)
d = Semicircle(B', B)
f = Line(O, I)
g = OrthogonalLine(O, f)
C = Intersect(c, g, 1)
h = Line(C, A)
D = Intersect(d, g, 1)
i = Line(D, h)
E = Intersect(f, i)

Tool: OpDivisión
Elige O e I, y luego el primer punto y el segundo punto
Input: O, I, A, B
Output: E

f = Line(O, I)
g = OrthogonalLine(O, f)
I' = Mirror(I, O)
c = Semicircle(I', I)
Binv = Mirror(B, c)
Binv' = Mirror(Binv, O)
e = Semicircle(Binv', Binv)
F = Intersect(e, g, 1)
C = Intersect(c, g, 1)
h = Line(C, A)
i = Line(F, h)
E = Intersect(f, i)