计算机分形剖析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机图形学实验报告
图1 第一次迭代图2 第二次迭代
2、算法分析
2.1 koch雪花
在一单位长度的线段上对其三等分,将中间段直线换成一个去掉底边的等边三角形,再在每条直线上重复以上操作,如此进行下去直到无穷,就得到分形曲线Koch曲线。
1.给定初始直线(x1,y1)、(x2,y2),按Koch曲线的构成原理计算出各关键点坐标如
下:
x4 = x1 *2/3 + x2* 1/3;
y4 = y1 *2/3 + y2* 1/3;
x5 = x1 *1/3 + x2* 2/3;
y5 = y1 *1/3 + y2* 2/3;
x3 = (x4 + x5) /2 + (y4-y5)* sqrt(3.0)/2;
y3 = (y4 + y5) /2 + (x5-x4)* sqrt(3.0)/2;
2. 2.利用递归算法,将计算出来的新点分别对应于(x1,y1)、(x2,y2)),然后利用步
骤1中的计算公式计算出下一级新点(x4, y4),(x5,y5),(x3,y3),并压入堆
栈。
if(depth<= 1){
//初始化画线
}
else{.//递归
koch(x1,y1,x4,y4,depth-1);
koch(x4,y4,x3,y3,depth-1);
koch(x3,y3,x5,y5,depth-1);
koch(x5,y5,x2,y2,depth-1);
}
3.给定一个小量c,当l (x2,y2),然后结束程序. k =1 递归二次:k =2 递归三次:k =3 递归N次:k =N (2)按键‘A’或‘a’换第一种渐变色 按键‘S’或‘s’换第二种渐变色; 树的界面,点击屏幕开始递归分析递归一次:k =1 递归二次:k =2 递归N次:k =N 参考文献: [1] 分形算法与程序设计—java实现孙博文著科学出版社,2004 [2] 混沌的计算实验与分析于万波著科学出版社,2008 [3] Koch雪花曲线的制作及其重要结论《长春师范大学学报》, 2003, 第1期:6-8 [4]基于分形理论的图形设计研究与应用帅昌浩著《西安科技大学》, 2008