複素平面

確率論的反復関数系によりフラクタル文様を描画しました

畑の樹状集合

  確率論的反復関数系

      畑の樹状集合 (Hata's tree-like set)

      f1(z) = A z + B _z                   (確率:1/2)
      f2(z) = C(z-1) + D(_z-1) + 1   (確率:1/2)

      ここでは 複素数 z の共役複素数を _z で表しています

      A=0+0i , B=1/2+sqrt(3)/6i , C=0+0i , D=2/3+0i , Zo=0+0i

      繰り返し回数  16000

     参考までにマクロを載せておきます
    //**********************************************************************************
     #macro Imult(Z1,Z2) < Z1.x*Z2.x-Z1.y*Z2.y , Z1.x*Z2.y+Z1.y*Z2.x > #end
    //**********************************************************************************
     #macro Complex_hata(Nmax,Ac,Bc,Cc,Dc,Zc,Sr)
      #local Rnd=seed(375246); #local P0=0; #local P1=1/2; #local P2=1;
      #local i=0; #while(i<Nmax) #local Jn=rand(Rnd);
       #if(P0<Jn & Jn<=P1)
         #local Zc=Imult(Ac,Zc)+Imult(Bc,<Zc.x,-Zc.y>); #end
       #if(P1<Jn & Jn<=P2)
         #local Zc=Imult(Cc,Zc-<1,0>)+Imult(Dc,<Zc.x,-Zc.y>-<1,0>)+<1,0>; #end
       sphere { Zc,Sr }
      #local i=i+1; #end
     #end  // macro end
    //**********************************************************************************
     #local Nmax=16000; #local Sc=200; #local Sr=0.5/Sc;

     #local Ac=<0,0>; #local Bc=<1/2,sqrt(3)/6>; #local Cc=<0,0>;
     #local Dc=<2/3,0>; #local Zc=<0,0>;

     union { Complex_hata(Nmax,Ac,Bc,Cc,Dc,Zc,Sr)
       pigment { color rgb <0.323,0.956,0.372> } scale Sc translate <-100,-12> }