2010年1月20日水曜日

カオス #33 Star Julia

Star Juliaとはクリスマスツリーネタで使いましたが,参考文献にあるIFSです.
説明が手抜きなのは,リンク先にある漸化式が若干謎な為です.
実際には下のようなソースで動きます.

  1. double xa=-4*x+Math.cos(m*w);  
  2. double ya=-4*y+Math.sin(m*w);  
  3. double r=Math.sqrt(xa*xa+ya*ya);  
  4. w=Math.atan2(ya,xa);  
  5. double x1,y1;  
  6. if(mt.nextBoolean(0.5)){  
  7.  x1=-Math.cos(n*w)-Math.sqrt(r)*Math.cos(w/2)/2;  
  8.  y1=-Math.sin(n*w)+Math.sqrt(r)*Math.sin(w/2)/2;  
  9. }else{  
  10.  x1=-Math.cos(n*w)+Math.sqrt(r)*Math.cos(w/2)/2;  
  11.  y1=-Math.sin(n*w)-Math.sqrt(r)*Math.sin(w/2)/2;  
  12. }  
  13. x=x1;  
  14. y=y1;  


例:
某氏より要望があった為,大きいサイズで.

m=1, n=1


Fig.1

回転させて,重ねると雪になります.


Fig.2

m=2, n=2


Fig.3

こちらは星.

折角なので壁紙サイズ.


Fig.4


Fig.5

参考文献
Paul Bourke.“Star Julia”.<http://local.wasp.uwa.edu.au/~pbourke/fractals/starjulia/>.Paul Bourke - Personal Pages.(参照2010年1月13日)

0 件のコメント: