with(plots): with(LinearAlgebra): curv:= proc(alpha) local alphap, alphapp; alphap:= map(diff, alpha, t); alphapp:= map(diff, alphap, t); simplify(Norm(CrossProduct(alphap, alphapp), Euclidean, conjugate=false)/Norm(alphap, Euclidean, conjugate=false)^3, symbolic); end: tor:= proc(alpha) local alphap, alphapp, alphappp; alphap:= map(diff, alpha, t); alphapp:= map(diff, alphap, t); alphappp:= map(diff, alphapp, t); simplify(DotProduct(CrossProduct(alphap, alphapp), alphappp, conjugate=false)/Norm(CrossProduct(alphap, alphapp), Euclidean, conjugate=false)^2, symbolic); end: arc:= proc(alpha) local alphap; alphap:= map(diff, subs(t=u, alpha), u); simplify(int(simplify(Norm(alphap, Euclidean, conjugate=false), symbolic), u=0..t), symbolic); end: involute:= proc(alpha) local a; a := 1/simplify(Norm(map(diff, alpha, t), Euclidean, conjugate=false), symbolic)*map(diff, alpha, t); simplify(alpha - arc(alpha)*a, symbolic); end: evolute:= proc(alpha) local alphap, alphapp, A, C; alphap:= map(diff, alpha, t); alphapp:= map(diff, alphap, t); A:= simplify(Norm(alphap, Euclidean, conjugate=false), symbolic)^2/simplify(Norm(CrossProduct(alphap, alphapp), Euclidean, conjugate=false), symbolic)^2; C:= CrossProduct(CrossProduct(alphap, alphapp), alphap); simplify(alpha + A*C, symbolic); end: recreate:= proc(kap, a, b, c, d, f, g) local sys, x, y, p, theta, pl; sys:= diff(theta(s), s) = kap(s), diff(x(s), s) = cos(theta(s)), diff(y(s), s) = sin(theta(s)); p:= dsolve({sys, theta(0) = 0, x(0) = 0, y(0) = 0}, {theta(s), x(s), y(s)}, type=numeric): pl:= odeplot(p, [x(s), y(s)], a..b, numpoints=400, thickness=1, axes=framed, color=red): display(pl, view=[c..d, f..g], scaling=constrained); end: recreate3dview:= proc(kap, ta, a, b, c, d, e, f, g, h, theta, phi) local sys, p, x, y, z, T1, T2, T3, N1, N2, N3, B1, B2, B3, pl; sys:= diff(x(s), s) = T1(s), diff(y(s), s) = T2(s), diff(z(s), s) = T3(s), diff(T1(s), s) = kap(s)*N1(s), diff(T2(s), s) = kap(s)*N2(s), diff(T3(s), s) = kap(s)*N3(s), diff(N1(s), s) = -kap(s)*T1(s) + ta(s)*B1(s), diff(N2(s), s) = -kap(s)*T2(s) + ta(s)*B2(s), diff(N3(s), s) = -kap(s)*T3(s) + ta(s)*B3(s), diff(B1(s), s) = -ta(s)*N1(s), diff(B2(s), s) = -ta(s)*N2(s), diff(B3(s), s) = -ta(s)*N3(s); p:= dsolve({sys, x(0) = 0, y(0) = 0, z(0) = 0, T1(0) = 1, T2(0) = 0, T3(0) = 0, N1(0) = 0, N2(0) = 1, N3(0) = 0, B1(0) = 0, B2(0) = 0, B3(0) = 1}, {x(s), y(s), z(s), T1(s), T2(s), T3(s), N1(s), N2(s), N3(s), B1(s), B2(s), B3(s)}, type=numeric): pl:= odeplot(p, [x(s), y(s), z(s)], a..b, numpoints=200, thickness=1, axes=framed, color=red): display(pl, scaling=constrained, view=[c..d, e..f, g..h], orientation=[theta, phi]); end: