cubic1[t_]:={3t-t^3,3t^2,3t+t^3}

trifoglioprb[t_]:={Cos[3t]*Cos[t],Cos[3t]*Sin[t], Cos[3t]^2}

cardiode[t_]:={(1-Cos[t])*Cos[t], (1-Cos[t])*Sin[t], 0}

els3D[a_,b_,c_][t_] := {a*Exp[b*t]*Cos[t], a*Exp[b*t]*Sin[t],c*t}

elica[a_,b_][t_] :={a*Cos[t], a*Sin[t],b*t}

curvatura[gamma_][t_] := Simplify[(Cross[D[gamma[tt], tt],D[gamma[tt], {tt,2}]].Cross[D[gamma[tt], tt],D[gamma[tt], {tt,2}]])^(1/2)/(D[gamma[tt], tt].D[gamma[tt], tt])^(3/2)]/. tt-> t

Plot[curvatura[trifoglioprb][t], {t, 0, 2Pi}]

curvatura[trifoglioprb][t]

torsione[gamma_][t_] := Simplify[Cross[D[gamma[tt], tt],D[gamma[tt], {tt,2}]].D[gamma[tt], {tt,3}]/(Cross[D[gamma[tt], tt],D[gamma[tt], {tt,2}]].Cross[D[gamma[tt], tt],D[gamma[tt], {tt,2}]])] /. tt -> t

Plot[torsione[trifoglioprb][t], {t, 0, 2Pi}]

torsione[cardiode][t]

Manipulate[GraphicsRow[{Show[ParametricPlot3D[trifoglioprb[t], {t, 0,2Pi}], Graphics3D[{PointSize[.07], Black, Point[trifoglioprb[k]]}]], Plot[curvatura[trifoglioprb][t], {t, 0, 2Pi}, Epilog -> {PointSize[0.05], Black, Point[{k,curvatura[trifoglioprb][k]}]}],
Plot[torsione[trifoglioprb][t], {t, 0, 2Pi}, Epilog -> {PointSize[0.05], Black, Point[{k,torsione[trifoglioprb][k]}]}]}], {k, 0.1, 2Pi}]

Plot3D[Cos[x^2+y], {x, -Pi, Pi}, {y, -Pi, Pi}]

ParametricPlot3D[{1+Cos[u]*v, -3Exp[u/v^2+1],Log[u^2v^4]},{u, -2,2}, {v,1,2},PlotRange->10, Boxed -> False, Axes -> False]

ParametricPlot3D[{(1+(v/2) *Cos[u/2])*Cos[u], (1+(v/2) *Cos[u/2])*Sin[u], (v/2)Sin[u/2]}, {u, 0,2Pi}, {v, -1,1}]

ParametricPlot3D[{(1+(v/2) *Cos[u/2])*Cos[u], (1+(v/2) *Cos[u/2])*Sin[u], (v/2)Sin[u/2]}, {u, 0,2Pi}, {v, -1,1}, Boxed -> False, Axes -> False, Mesh -> None, PlotStyle -> Directive[Black, Specularity[White, 10], Lighting -> "Neutral"]]

ParametricPlot3D[{(1+(v/2) *Cos[u/2])*Cos[u], (1+(v/2) *Cos[u/2])*Sin[u], (v/2)Sin[u/2]}, {u, 0,2Pi}, {v, -1,1}, Boxed -> False, Axes -> False, Mesh -> None, PlotStyle -> Directive[Purple, Specularity[White, 10], Lighting -> "Neutral"]]

toretto[a_,b_][u_,v_] :={Cos[u]*(a+Cos[v]), Sin[u]*(b+Cos[v]), Sin[v]}

ParametricPlot3D[toretto[1,3][u,v], {u, 0, 2Pi}, {v,0,2Pi}]

ParametricPlot3D[toretto[2,3][u,v], {u, 0, 2Pi}, {v,0,2Pi}]

sds[u_,v_] := {u, v, u^3-3u*v^2}

ParametricPlot3D[sds[u,v], {u, -1,1},{v,-1,1}]

ContourPlot3D[x^4+y^4+z^4-(x^2+y^2+z^2)^2+3(x^2+y^2+z^2)==3, {x, -10,10},{y,-10,10},{z,-10, 10}]

pianotangente[sigma_][u0_,v0_][u_,v_] := sigma[u0,v0]+D[sigma[uu,vv], uu]*u+D[sigma[uu,vv],vv0]*v /. {uu0,vv0}-> {u0,v0}

Show[{ParametricPlot3D[toro[u,v], {u, 0, 2Pi}, {v,0,2Pi}],ParametricPlot3D[pianotangente[toro][0,0][u,v], {u, -.4, .4}, {v,-.4, .4}, PlotStyle->{Black}]}]

ParametricPlot3D[pianotangente[toretto][2,3][u,v], {u, -.4, .4}, {v,-.4, .4}]

Show[{ParametricPlot3D[sds[u,v], {u, 1, 2Pi}, {v,0,2Pi}],ParametricPlot3D[sds[2,3][u,v], {u, -.4, .4}, {v,-.4, .4}]}]

toraccio[u_,v_] :={Cos[u]*(2+Cos[v]), Sin[u]*(3+Cos[v]), Sin[v]}

Show[{ParametricPlot3D[toraccio[u,v], {u, 0, 2Pi}, {v,0,2Pi}],ParametricPlot3D[pianotangente[toraccio][Pi,Pi][u,v], {u, -.4, .4}, {v,-.4, .4}]}]

toro[u_, v_]:={Cos[u] (2+Cos[v]),Sin[u] (3+Cos[v]),Sin[v]}

sfera[u_, v_] := {Sin[u]Cos[v],Sin[u]Sin[v], Cos[u]}

toretto[2,3][u,v]

pianotangente[toretto][2,3][0,0][u,v]

Show[{
ParametricPlot3D[sfera[u,v],{u,0,Pi},{v,-Pi,Pi}],
ParametricPlot3D[pianotangente[sfera][Pi/7,-Pi/4][u,v],{u,-.4,.4},{v,-.4,.4},Mesh->None]
}]

Show[{
ParametricPlot3D[toro[u,v],{u,0,2Pi},{v,-Pi,Pi}],
ParametricPlot3D[pianotangente[toro][Pi/7,-Pi/4][u,v],{u,-.4,.4},{v,-.4,.4},Mesh->None, PlotStyle->Black]
}]

Show[{
ParametricPlot3D[toretto[u,v],{u,0,2Pi},{v,-Pi,Pi}],
ParametricPlot3D[pianotangente[toro][Pi/7,-Pi/4][u,v],{u,-.4,.4},{v,-.4,.4},Mesh->None]
}]

ParametricPlot3D[toretto[2,3][u,v],{u,0,2Pi},{v,-Pi,Pi},PlotRange->4]

toromio[a_,b_][u_,v_] :={Cos[u]*(a+Cos[v]), Sin[u]*(b+Cos[v]), Sin[v]}

ParametricPlot3D[toromio[2,3][u,v],{u,0,2Pi},{v,-Pi,Pi},PlotRange->4]

Show[{
ParametricPlot3D[toromio[2,3][u,v],{u,0,2Pi},{v,-Pi,Pi}],
ParametricPlot3D[pianotangente[toromio[2,3]][Pi/7,-Pi/4][u,v],{u,-.4,.4},{v,-.4,.4},Mesh->None, PlotStyle->Black]
}]