#include "colors.inc" #include "glass.inc" global_settings { assumed_gamma 1.8 } camera { orthographic location < -1, 2,-7> direction <1,2,3> look_at < -0.1, -0.1, 0> } light_source { <-4, 10,-10> color White*1. } light_source { <-4, 10,4> color White*1. } light_source { <-5, -5, -15> color Orange} background{ color White } //SkyBlue*1.1 // ---------- equations ----------- #macro CX(uu,vv) pow(cos(uu),2)*pow(sin(vv),2)-1/2*pow(sin(uu),2)*pow(sin(vv),2) -1/2*pow(cos(vv),2)+sin(uu)*sin(vv)*cos(vv)*(pow(sin(uu),2)*pow(sin(vv),2) -pow(cos(vv),2))+1/2*cos(vv)*cos(uu)*sin(vv)*(pow(cos(uu),2)*pow(sin(vv),2) -pow(cos(vv),2))+1/2*cos(uu)*pow(sin(vv),2)*sin(uu)*(pow(sin(uu),2)*pow(sin(vv),2)-pow(cos(uu),2)*pow(sin(vv),2)) #end #macro CY(vu,vv) 1/2/sqrt(3)*(pow(sin(uu),2)*pow(sin(vv),2)-pow(cos(vv),2)+cos(vv)*cos(uu)*sin(vv)*(pow(cos(vv),2) -pow(cos(uu),2)*pow(sin(vv),2))+cos(uu)*pow(sin(vv),2)*sin(uu)*(pow(sin(uu),2)*pow(sin(vv),2) -pow(cos(uu),2)*pow(sin(vv),2)))#end #macro CZ(uu,vv) ( cos(uu)*sin(vv)+sin(uu)*sin(vv)+cos(vv) )*(pow(cos(uu)*sin(vv)+sin(uu)*sin(vv)+cos(vv),3) +4*(sin(uu)*sin(vv)-cos(uu)*sin(vv) )*( cos(vv)-sin(uu)*sin(vv) )*( cos(uu)*sin(vv)-cos(vv) ) ) #end //------------------------------- #declare uiter = 80; #declare viter = 80; //#declare a=2 ; #declare vmin = 0; #declare vmax = pi; #declare umin = 0 ; #declare umax = pi; #declare iu = (umax-umin)/uiter; #declare iv = (vmax-vmin)/viter ; //#declare counter = 0 ; #declare surface =union{ #declare vv = vmin; #declare uu = umin; #while (uu,); #declare n2=vcross(,); #declare n3=vcross(,); #declare n4=vcross(,); #declare n5=vcross(,); #declare n6=vcross(,) ; #declare n7=vcross(,); #declare n8=vcross(,) ; #declare n9=vcross(,); //TRIANGLES object{ smooth_triangle{ ,n5+n6+n8+n9, ,n4+n5+n7+n8, ,n1+n2+n4+n5 } } object{ smooth_triangle{ , n5+n6+n8+n9, , n1+n2+n4+n5 , n2+n3+n5+n6 } } #declare vv = vv+iv; #end // fin boucle interne #declare uu = uu+iu ; #end //fin boucle externe } object {surface pigment { color Gold transmit 0.22 } //fin pigment finish { ambient 0.3 diffuse 0.2 specular 0.5 reflection 0.1 } scale <1,4,0.1>*0.8 rotate <0,160,60>//<90,150,-20> translate <-0.5,-0.2,0> } object {surface pigment { color Green transmit 0.3 } //fin pigment finish { ambient 0.3 diffuse 0.2 specular 0.4 } scale <1,4,0.1>*0.35 rotate <0,-10,180> translate <0.8,0.4,0> }