GraphingCalculator 4; Window 64 154 618 1220; PaneDivider 368; FontSizes 16; BackgroundType 0; BackgroundColor 10 0 20; StackPanes 1; Slider 0 360; SliderSteps 360; SliderControlValue 0; T 0 6.283185307179586; U 0 6.283185307179586; V 0 6.283185307179586; 4D.X -1 1; 4D.Y -1 1; 4D.Z -1 1; 4D.W -1 1; 4D.Show4DxyPlane 0; 4D.Show4Daxes 0; 4D.Depth 1.7330909743; 4D.View -0.1430831161038437 -0.1273659767168948 0.4212756770398332 0.8864716204113622 -0.8559750615695104 0.4706696374422297 -0.2118232388589546 0.03012809063905018 0.0450948796245368 -0.3315583280181187 -0.8661433350837253 0.3712563131512195 0.4947730466517704 0.8076614857041068 -0.1656908039614291 0.2746436132556306; Text "Clifford Torus and its embedding 3Sphere. by Guido 'wugi' Wuyts, 2016 http://home.scarlet.be/wugi/qbComplex.html"; Color 4; Expr h=n*(pi/360),d=2^0.5; Color 2; MathPaneSlider 101; Expr s=slider([-1,1]); Text "The 3Sphere equation is xx+yy+uu+vv = 2. The Clifford torus's is xx+yy = uu+vv = 1 and may rotate within its 3Sphere. The 3Sphere is 'filled out' by a family of 'toruses' : xx+yy = rxy^2 and uu+vv = ruv^2 , so that ruv^2 = 2 - rxy^2 The slider runs through those values, probing the 3Sphere from Clifford torus to limit circles. (xyu axes in magenta, v axis in white: projection axis for 3D Cyclide in other Graph)"; Color 8; Expr 'rxy'=[s+1]^0.5; Color 3; Expr 'ruv'=[1-s]^0.5; Color 7; Expr vector(x,y,u,v)=vector('rxy'*cos(u)*cos([h])-('ruv'*sin(v)*sin([h])),'rxy'*sin(u),'ruv'*cos(v),'rxy'*cos(u)*sin([h])+'ruv'*sin(v)*cos([h])); Color 6; Expr vector(x,y,u,v)=vector('rxy'*cos(t)*cos([h])-('ruv'*sin([a*(pi/9)])*sin([h])),'rxy'*sin(t),'ruv'*cos([a*(pi/9)]),'rxy'*cos(t)*sin([h])+'ruv'*sin([a*(pi/9)])*cos([h])),in(a,set(0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,8,17)); Color 5; Expr vector(x,y,u,v)=vector('rxy'*cos([a*(pi/9)])*cos([h])-('ruv'*sin(t)*sin([h])),'rxy'*sin([a*(pi/9)]),'ruv'*cos(t),'rxy'*cos([a*(pi/9)])*sin([h])+'ruv'*sin(t)*cos([h])),in(a,set(0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,8,17)); Color 7; Expr vector(0,0,0,0),vector(0,0,0,d); Expr vector(1,0,0,0),vector(1,1,0,0),vector(0,1,0,0),vector(0,1,1,0),vector(0,0,1,0),vector(1,0,1,0),vector(1,0,0,0); Expr vector(0,0,0,0),vector(1,0,0,0); Expr vector(0,0,0,0),vector(0,1,0,0); Expr vector(0,0,0,0),vector(0,0,1,0);