# Parameters R=5.0 r=1.2 s=0.7 # Torus f(u,v)=(R+r*cos(u))*cos(v) g(u,v)=(R+r*cos(u))*sin(v) h(u,v)=r*sin(u) # d / du gives one tangent f1(u,v)=-sin(u)*cos(v) g1(u,v)=-sin(u)*sin(v) h1(u,v)=cos(u) # normal to torus f2(u,v)=cos(u)*cos(v) g2(u,v)=cos(u)*sin(v) h2(u,v)=sin(u) # Trefoil f3(u,v)=f(3*u,2*u)+s*f1(3*u,2*u)*cos(v)+s*f2(3*u,2*u)*sin(v) g3(u,v)=g(3*u,2*u)+s*g1(3*u,2*u)*cos(v)+s*g2(3*u,2*u)*sin(v) h3(u,v)=h(3*u,2*u)+s*h1(3*u,2*u)*cos(v)+s*h2(3*u,2*u)*sin(v) set parametric set isosamples 50,20 set hidden set nokey set noborder set noxtics set noytics set noztics set view 0,210,1,1 set title "Parametric Trefoil" set urange [-pi:pi] set vrange [-pi:pi] splot f3(u,v),g3(u,v),h3(u,v)