/* restart: #assume(r>0); x:=cos(uu)*cos(vv);y:=cos(uu)*sin(vv); z:=sin(uu)^3; diff(x,uu), diff(x,vv); diff(y,uu), diff(y,vv); diff(z,uu), diff(z,vv); -sin(uu)*cos(vv), -cos(uu)*sin(vv) -sin(uu)*sin(vv), cos(uu)*cos(vv) 3*sin(uu)*sin(uu)*cos(uu), 0 */ #include "colors.inc" #include "metals.inc" camera { orthographic location <-0,12,-30> look_at<0,0,0> angle 5 } light_source { <-5,20,-20> White shadowless } light_source { <0,15,-20> color White shadowless} light_source { <4,-10,-15> color Orange*0.7 shadowless} plane {z, 20 pigment{ SkyBlue*1.1}} //background{White} //------------------------------------------- #declare umin = 0.; #declare umax = 2*pi; #declare vmin =0; #declare vmax = 2*pi; #declare uiter = 100; #declare viter = 80; #declare iu = (umax-umin)/uiter ; #declare iv = (vmax-vmin)/viter; //--------rebords plus ou moins accentués selon n----- #macro surf(n) //------------ #macro CX(uu,vv) cos(uu)*cos(vv) #end #macro CY(uu,vv) cos(uu)*sin(vv) #end #macro CZ(uu,vv) pow(sin(uu),n) #end //--------------- dM/duu ------------- #macro dCXu(uu,vv) -sin(uu)*cos(vv) #end #macro dCYu(uu,vv) -sin(uu)*sin(vv) #end #macro dCZu(uu,vv) n*pow(sin(uu),n-1)*cos(uu) #end //--------------- dM/dvv ------------- #macro dCXv(uu,vv) -cos(uu)*sin(vv) #end #macro dCYv(uu,vv) cos(uu)*cos(vv) #end #macro dCZv(uu,vv) 0 #end // ---------------------------------------- union{ // methode math #declare uu = umin; #while (uu<=umax) //boucle externe #declare vv = vmin; #while (vv<=vmax) //boucle interne //POINTS #declare x1=CX(uu,vv); #declare y1=CY(uu,vv); #declare z1=CZ(uu,vv) ; #declare n1=vcross(,); #declare uu=uu+iu; #declare x2=CX(uu,vv); #declare y2=CY(uu,vv); #declare z2=CZ(uu,vv); #declare n2=vcross(,); #declare vv=vv+iv ; #declare x3=CX(uu,vv); #declare y3=CY(uu,vv); #declare z3=CZ(uu,vv); #declare n3=vcross(,); #declare uu=uu-iu ; #declare x4=CX(uu,vv); #declare y4=CY(uu,vv); #declare z4=CZ(uu,vv) ; #declare n4=vcross(,); #declare vv=vv-iv; //TRIANGLES object{ smooth_triangle{ ,n1, ,n2, ,n3 } } object{ smooth_triangle{ , n1, , n3 , n4 } } #declare vv = vv+iv; #end // fin boucle interne #declare uu = uu+iu ; #end //fin boucle externe texture{ pigment { quilted color_map{[0.01 rgb<1,1,0>*0.8][0.5 rgb<1,0.8,0>*0.7] [1 rgb<0.8,0.6,0>*0.5]}} normal { quilted 1// amount control0 0.6 // lower curvature (-1...1) control1 1 // upper curvature (-1...1) scale 0.02 accuracy 0.5 // relief } } /* pigment{ crackle// gradient z color_map{ [ 0.1 color White ] [ 0.2 color red 1 green 0.9 blue 0] [ 0.1 color red 1 green 0.8 blue 0] [ 0.6 color red 0.7 green 0.5 blue 0 ] // filter 0.5 } // color_map} scale 0.08 } */ finish { ambient 0.6 diffuse 0.4 specular 0.8 roughness 0.01} rotate <0,0,60> rotate <90,50,0> } #end // fin de surf //----------------------------------------- object{ surf(2) scale 0.65 rotate 180*x translate <-0.7,0.35,0>} object{ surf(4) scale 0.65 rotate 180*x translate <0.7,0.35,0>} object{ surf(6) scale 0.65 rotate 180*x translate <-0.7,-0.7,0>} object{ surf(8) scale 0.65 rotate 180*x translate <0.7,-0.7,0>} //----------------------------------------- text { ttf "times.ttf" "AE" 0.3,0 pigment { Blue} scale 0.06 rotate <40,0,-2> translate <+1,-1,0> finish{ ambient 0.2 diffuse 0.3} }