diff options
Diffstat (limited to 'Build/source/utils/asymptote/examples/animations/torusanimation.asy')
-rw-r--r-- | Build/source/utils/asymptote/examples/animations/torusanimation.asy | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/examples/animations/torusanimation.asy b/Build/source/utils/asymptote/examples/animations/torusanimation.asy new file mode 100644 index 00000000000..74a5df43278 --- /dev/null +++ b/Build/source/utils/asymptote/examples/animations/torusanimation.asy @@ -0,0 +1,43 @@ +import graph3; +import animation; +import solids; + +currentprojection=perspective(50,40,20); + +currentlight=(0,5,5); + +real R=3; +real a=1; +int n=8; + +path3[] p=new path3[n]; +animation A; + +for(int i=0; i < n; ++i) { + triple g(real s) { + real twopi=2*pi; + real u=twopi*s; + real v=twopi/(1+i+s); + real cosu=cos(u); + return((R-a*cosu)*cos(v),(R-a*cosu)*sin(v),-a*sin(u)); + } + p[i]=graph(g,0,1,operator ..); +} + +triple f(pair t) { + real costy=cos(t.y); + return((R+a*costy)*cos(t.x),(R+a*costy)*sin(t.x),a*sin(t.y)); +} + +surface s=surface(f,(0,0),(2pi,2pi),8,8,Spline); + +for(int i=0; i < n; ++i){ + picture fig; + size(fig,20cm); + draw(fig,s,yellow); + for(int j=0; j <= i; ++j) + draw(fig,p[j],blue+linewidth(4)); + A.add(fig); +} + +A.movie(BBox(10,Fill(rgb(0.98,0.98,0.9))),delay=100); |