Задача №2.1 ( Буркин Антон, 201 группа, 2011/12 уч.гг.)

Вложение тора в четырехмерное евклидово пространство задано формулой r[u,v] = {Cos[u], Sin[u], Cos[v], Sin[v]}. Визуализировать проекцию этого тора на различные трехмерные пространства, задаваемые динамически координатами своих нормалей. Можно ли, меняя плоскость проекции, избавиться от самопересечений?

Clear[x1,x2,x3,x4,u,v];
f[x1_,x2_,x3_,x4_,u_,v_] := Simplify[LinearSolve[Transpose[Append[Orthogonalize[NullSpace[{{x1,x2,x3,x4}}],Dot],Normalize[{x1,x2,x3,x4}]]],{Cos[u], Sin[u], Cos[v], Sin[v]}][[1;;3]]]

Manipulate[
If[cut,
ParametricPlot3D[f[x1,x2,x3,x4,u,v],{u,0,2π},{v,0,2π},
RegionFunction->Function[{x,y,z},z≥0],
Mesh->If[mesh,5,False],MeshStyle->Darker[Gray],Axes->False,
PlotLabel->Style["Проекция вложения (T^2) в (R^4) на (R^3) (в разрезе)",Large],LabelStyle->Directive[Bold,Blue],Boxed->False,ImageSize->600,
PlotStyle->{Opacity[opacity],Yellow}
],
ParametricPlot3D[f[x1,x2,x3,x4,u,v],{u,0,2π},{v,0,2π},
Mesh->If[mesh,5,False],MeshStyle->Darker[Gray],
Axes->False,PlotLabel->Style["Проекция вложения (T^2) в (R^4) на (R^3)",Large],
LabelStyle->Directive[Bold,Blue],Boxed->False,ImageSize->600,
PlotStyle->{Opacity[opacity],Yellow}]
],
{x1,-1,1},{x2,-1,1},{x3,-1,1},{x4,-1,1},
{mesh,{True,False}},{{opacity,0.5},0,1},{cut,{False,True}},Button["Явное представление функции",CreateDocument[{TextCell["Явное представление функции","Section"],TextCell[f[x1,x2,x3,x4,u,v]]}]]]