java,分形——谢宾斯基地毯,科赫曲线及运用递归的一点感触ITeye - 凯发娱乐

java,分形——谢宾斯基地毯,科赫曲线及运用递归的一点感触ITeye

2019年02月18日09时00分57秒 | 作者: 映冬 | 标签: 办法,图形,地毯 | 浏览: 1625

  画分形图形时,常要用到递归思维,递归思维网上有许多文章介绍,在此写一点我的使用办法总结如下。
  1、搞清楚分形图形的根本单位。
  2、断定所需求的参数类型个数及个数。
  3、依据传入的参数制作这个根本图形。
  4、搞清楚在此根底图形上、咱们需求制作几个相同的制作图形(比方 在制作谢宾斯基地毯时,根本图形是一个正方形,在此正方形四周,咱们需求制作八个小正方形)这决议咱们在此办法中需求再次调用此办法的次数。
  5、断定计数,计数必定要有否则此办法不会完毕,会导致栈溢出。
  咱们需求断定的是,计数办法,不同的图形,计数办法会补同,有些图形从第一个根本图形开端制作(谢宾斯基三角形,谢宾斯基地毯),可是有些图形需求从最终的一个图形开端制作(科赫曲线)
  6、在此办法里调用此办法,留意调用次数,和传入的参数。
 
别的:在这个办法中调用这个办法超越一次,那么传入的参数,必定不能是全局变量,多是这个办法中的局部变量。
 
  或许数的不是很清楚 ,下附代码,期望能够协助没了解
 
 private Graphics g;
 private int x;
 private int y;
 private int width;
 private int height;
//画谢宾斯基地毯得办法, (需求实例化画布目标)
public void coordinateCar(double x, double y, double width, double height,int con) {
 if (con 1) {
 return;
 this.x = (int) x;
 this.y = (int) y;
 this.width = (int) width;
 this.height = (int) height;
 g.setColor(new Color(con*10%255,con*40%255,con*20%255));
 g.fillRect(this.x, this.y, this.width, this.height);
//这儿核算下次传入的参数值 ,这个能够另写一个办法
 double x1 = x - width * 2 / 3;
 double y1 = y - height * 2 / 3;
 double width1 = width / 3;
 double height1 = height / 3;
 double x2 = x + width / 3;
 double y2 = y - height * 2 / 3;
 double x3 = x + width * 4 / 3;
 double y3 = y - height * 2 / 3;
 double x4 = x + width * 4 / 3;
 double y4 = y + height / 3;
 double x5 = x + width * 4 / 3;
 double y5 = y + height * 4 / 3;
 double x6 = x + width / 3;
 double y6 = y + height * 4 / 3;
 double x7 = x - width * 2 / 3;
 double y7 = y + height * 4 / 3;
 double x8 = x - width * 2 / 3;
 double y8 = y + height / 3;
 con;
//调用这个办法 超越了一次, 那么传入的参数必定不能是,this.x等等
 coordinateCar(x1, y1, width1, height1, con);
 coordinateCar(x2, y2, width1, height1, con);
 coordinateCar(x3, y3, width1, height1, con);
 coordinateCar(x4, y4, width1, height1, con);
 coordinateCar(x5, y5, width1, height1, con);
 coordinateCar(x6, y6, width1, height1, con);
 coordinateCar(x7, y7, width1, height1, con);
 coordinateCar(x8, y8, width1, height1, con);                          
			
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章