// Dragons sans utiliser la récursivité #include "colors.inc" #include "metals.inc" //-------------- n ITERATIONS--------------- camera { location <-0.5,-0,-2> look_at<-0.5,-0.2,0>} light_source { <-3,3,-100> color White } light_source { <2,3,-50> color Yellow} background { rgb<1,0.95,0.85>*1 } //<0.,0.5,0.95>*1.0 //---------------- macros ------------------- #macro sim(a,b,e,f,g) // pour similitude appliquée à #end //----------- MACRO DRAGON------------------------ #macro dragon(s1x,s1y,s2x,s2y,transx,transy,n) #local tab = array [pow(2,n)] ; #declare tab[0]=<0,0,0>; #declare tab[1]=<1,0,0>; #local trx=transx; #local try=transy; #local be=1; #while(be)/LL;// #declare bi=bi+1; #end #declare trx=trx/LL; #declare try=try/LL; // fin boucle (3) #declare be=be+1; #end //------------------------------------------- #local r=0.25/pow(1.4,n) ; #declare cp=0; union { #while(cp } /* */ /* // dragon enflammé ! #declare n=10; object{ dragon(1, 0, 0, 1,cos(pi/4),sin(pi/4),n) rotate <0,0,(n-4)*45-22> translate <0.1,0.,0> finish{ ambient 0.6} } */ /* dragon sans points multiples #declare n=12; object{ dragon(1, 0, 0, 1,0,0.8,n) rotate <0,0,(n+3)*45> translate <0.1,0.,0> scale 1 }