フラクタル

バーンズリーのシダと呼ばれる有名なフラクタル文様をレンダリングしました

バーンズリーのシダ

参考のためにPOV-Rayで描画するためのマクロを載せておきます

//**********************************************************************************
#macro Barnsley_fern(P,Sr,Sc)
 #local Rnd=seed(2465);
 #local P1=0.85*0.85+0.04*0.04; #local P2=0.2*0.22+0.26*0.23;
 #local P3=0.15*0.24+0.28*0.26; #local P4=0.01; #local D=P1+P2+P3+P4;
 #local P1=P1/D; #local P2=P1+P2/D; #local P3=P2+P3/D;
 #local X=0; #local Y=0;
 //
 #local i=0; #while(i<P) #local Jn=rand(Rnd);
  #if( 0<Jn & Jn<=P1) #local Pn=< 0.85*X+0.04*Y, -0.04*X+0.85*Y+1.6 >; #end
  #if(P1<Jn & Jn<=P2) #local Pn=< 0.2*X-0.26*Y,  0.23*X+0.22*Y+1.6 >; #end
  #if(P2<Jn & Jn<=P3) #local Pn=< -0.15*X+0.28*Y, 0.26*X+0.24*Y+0.44 >; #end
  #if(P3<Jn & Jn<=1 ) #local Pn=< 0, 0.16*Y >; #end
  sphere { Pn Sr/Sc scale Sc translate < -Sc/2, -5.2*Sc > }
  #local X=Pn.x; #local Y=Pn.y;
 #local i=i+1; #end
#end  // macro end
//**********************************************************************************

  #local P=30000; #local Sr=0.5; #local Sc=15.2;
  union { Barnsley_fern(P,Sr,Sc) pigment { color rgbt < 0.324, 1, 0.954, 0.26 > } }