f(x) = 0.0 * x
lista: {x^(2.0), x, 10.0^(x), x^(3.0) - 2.0 * x^(2.0), 1.0 / x, sin(x), f(x)}
ii = 1 (slider from 1 to 7, step 1)
i: round(ii)
A = Point(xAxis)
B = Point(Ray[A, A + (1.0, 0.0)])
a = Segment(A, B)
C = Point(a)
d = 0 (slider from -5 to 5, step 0.01)
flista = Function(Element[lista, i], x(A), x(B))
P: (x(C), flista(x(C)))
e = Tangent(P, flista)
j = OrthogonalLine(P, e)
E = Point(j)
c = OsculatingCircle(P, flista)
O = If(Defined[c], Center[c], E)
Q: P + (P - O) / abs(P - O)
b = Line(P, Q)
P' = Point(b)
h = OrthogonalLine(P', xAxis)
D = Intersect(e, h)
lado = If(y(D - Q) < 0.0, -1.0, 1.0)
PL: P - (P - O) / abs(P - O) * d * lado
offset = Locus(PL, C)
g = Segment(C, P)
texto1: "\bgcolor{ffffff}{Función\;" + (If[i ≟ 7.0, "f(x)\;a\;definir", "" + i]) + "}"
d_1 = Segment(PL, P)
texto2: "\bgcolor{ffffff}{f(x)\;=\;" + (Element[lista, i]) + "}"