有趣的迭代分形:一个点画出一个新的世界

迭代分形指的是通过电脑在其容器中的为随机数的获取,来取得有限空间如:简单的骰子:

1.平面上随机选A,B,C三个点。再随机选一个点,记为P。
2.有一个三面色子,每丢一次,则选中ABC三个中一点。
开始游戏:
1.重复丢色子,如果选中A,则取A和P的中点P1,画黑,
2.如果选中B,则取B和P1的中点P2,画黑
3.如果选中A,则取A和P2的中点P3,画黑
4….一直重复(如每点一下鼠标,丢10000次色子。

 

 在这里简单的实现代码如下:

if("分形".equals(str)&& i==1){
              int k,j;                                   
              int array[][] = new int[4][2];
              Random ran = new Random();
              for(k = 0;k<4;k++){
                  array[k][0] = ran.nextInt(850);
                  array[k][1] = ran.nextInt(700);
              }
              System.out.println("x0:"+array[0][0]+" y0:"+array[0][1]);
              for(j = 0;j<10000;j++){
                 int t = ran.nextInt(3)+1;
                 //System.out.println("t:"+t);
                 array[0][0] = (array[t][0]+array[0][0])/2;
                 array[0][1] = (array[t][1]+array[0][1])/2;
                 //System.out.println("x0:"+array[0][0]+" y0:"+array[0][1]);
                 //System.out.println("co:"+co);
                 gr.drawLine(array[0][0], array[0][1], array[0][0], array[0][1]);
                 //System.out.println("x0:"+array[0][0]+" y0:"+array[0][1]);
                 t = 0;
              }

 

posted @ 2016-07-13 09:55  旷野足迹  阅读(349)  评论(0编辑  收藏  举报