// File exported by Eureka 2.12. Designed by Archimedium 2006 #version 3.1; #declare Gold_Phong = texture { pigment { color rgb <1.0,0.90,0.6> } finish { phong 1.0 phong_size 5.0 } } #declare EPSILON = 1e-10; #declare xmin = 0; #declare xmax = 3.14159265358979311; #declare ymin = 0; #declare ymax = 6.28318530717958623; #declare xiter = 11; #declare yiter = 61; #declare ix = (xmax-xmin)/(xiter-1.0); #declare iy = (ymax-ymin)/(yiter-1.0); #declare deltax = (xmax-xmin)/((xiter-1.0)*4.0); #declare deltay = (ymax-ymin)/((yiter-1.0)*4.0); #macro Point(xx,yy) #local X = xx; #local Y = yy; #local R = sqrt(X*X+Y*Y); #if(abs(X)>EPSILON&abs(Y)>EPSILON) #local T = atan2(Y,X); #else #local T = 0; #end #local absc = abs((3+cos(Y)*cos(X))*cos(Y)); #local ordo = (3+cos(Y)*cos(X))*sin(Y); #local cote = cos(Y)*sin(X); #declare zzz=-absc; #declare xxx=ordo; #declare yyy=cote; #end #macro Surface(xx,yy) Point(xx,yy) #local xn=xxx; #local yn=yyy; #local zn=zzz; #declare xx=xx+deltax; Point(xx,yy) #local xp=xxx; #local yp=yyy; #local zp=zzz; #declare xx=xx-deltax; #declare yy=yy+deltay; Point(xx,yy) #local xq=xxx; #local yq=yyy; #local zq=zzz; #declare yy=yy-deltay; #local vn=vcross(,); #if(!(vn.x=0&vn.y=0&vn.z=0)) #declare nn=vnormalize(vn); #else #declare nn=<1,0,0>; #end #declare pp=; #end #declare eureka_croiss = mesh { #declare xx = xmin; #while (xx scale 1.0/6.29412435 } object { eureka_croiss no_shadow texture { Gold_Phong } rotate <0,36*clock,0> } //Lights, camera, action camera { location < 0.8, 0.8, -0.8> direction 1*z look_at < 0, 0, 0> } light_source { < 0, 1, -1> color rgb 1 } light_source { < 1, 1, -1> color rgb 1 } object { box{-2,2 inverse} pigment{color rgb 0.9} }