MATHEMATICA CODE


r=1;
a=6;
b=3;
k=2;
ab[x_,y_,z_]:=Sqrt[ x^2 + y^2 + z^2 ];
f[x_]:=2Cos[x];
g[x_]:=2Sin[x];
h[x_]:=0;
ff[x_]:=D[f[x],x];
gg[x_]:=D[g[x],x];
hh[x_]:=D[h[x],x];
p[x_]:={f[x],g[x],h[x]};
uu[x_]:={-gg[x],ff[x],0};
u[x_]=uu[x]/ab[-gg[x],ff[x],0];
vv[x_]:={-ff[x] hh[x],-hh[x]gg[x],ff[x]^2+gg[x]^2};
v[x_]=vv[x]/ab[-ff[x] hh[x],-hh[x]gg[x],ff[x]^2+gg[x]^2];
ParametricPlot3D[
p[s]+r u[s]Cos[t]+r v[s]Sin[t],
{s,0,4Pi},{t,0,2 Pi},Axes->False,
Boxed->False,PlotPoints->{61,19}]

  フレームの中でドラッグすると回転し、離すとそのまま回転を続けます。