几何画板与分形.docx

上传人:b****7 文档编号:9803370 上传时间:2023-02-06 格式:DOCX 页数:23 大小:1.64MB
下载 相关 举报
几何画板与分形.docx_第1页
第1页 / 共23页
几何画板与分形.docx_第2页
第2页 / 共23页
几何画板与分形.docx_第3页
第3页 / 共23页
几何画板与分形.docx_第4页
第4页 / 共23页
几何画板与分形.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

几何画板与分形.docx

《几何画板与分形.docx》由会员分享,可在线阅读,更多相关《几何画板与分形.docx(23页珍藏版)》请在冰豆网上搜索。

几何画板与分形.docx

几何画板与分形

几何画板迭代与深度迭代

迭代是几何画板中一个很有趣的功能,它相当于程序设计的递归算法。

通俗的讲就是用自身的结构来描述自身。

递归算法的特点是书写简单,容易理解,但是运算消耗内存较大。

迭代:

按一定的迭代规则,从原象到初象的反复映射过程。

原象:

产生迭代序列的初始对象,通常称为“种子”。

 

初象:

原象经过一系列变换操作而得到的象。

与原象是相对概念。

更具体一点,在代数学中,如计算数列1,3,5,7,9......的第n项。

我们知道

,所以迭代的规则就是后一项等于前一项加2。

以1作为原像,3作为初像,迭代一次后得到5,再迭代一次得到7,以此类推。

在几何学中,迭代使一组对象产生一组新的对象。

上图中A、B、C、D、E、F,各点相距1.88cm,那么怎么由A点和B点得到其它各点呢?

我们可以发现其中的规律就是从左到右,每一个点相当于前面一个点向右平移了1.88cm。

所以我们以A点作为原像,B点作为初像,迭代一次得到B点,二次为C点,以此类推。

迭代像就是迭代操作产生的象的序列,而迭代深度是指迭代的次数。

利用几何画板的深度迭代功能可以画出许多美妙的分形图形,并以几何画板为基础来研究分刑图形面积,周长的变化。

一、谢尔宾斯基三角形

利用几何画板画法流程:

(1)先任意画好一个三角形ABC,接着构造线段AB,BC,CA的中点D,E,F,选择点D,E,F,再选择菜单“构造”、“三角形内部”。

(2)在“图表”中“新建参数”为n=3.依次选择点A,8,C和参数n,按住shift键不放后选择“变换”中的“深度迭代”。

(3)在初象中依次选A,D和F点,再添加新的映射(按Ctrl+A),映像2中依次选D,B和E点,再按Ctrl+A,依次选F,E和C点。

最后选“迭代”,得到谢尔宾斯基三角形。

选择n按“+”或“一”,三角形就进行了迭代变化。

n=1

n=2

n=3

n=4

n=5

随着有色三角形越来越多,空白三角形越来越少。

我们若用有色三角形表示去掉的部分,,则剩下的面积可能趋向于0,而剩下部分的周长呢,,设分形级数为n,初始边长为1,

1新产生的小三角形数量为

②一个新小三角形边长为

1③谢尔宾斯基三角形周长为

④谢尔宾斯基三角形面积为

;

⑤当n→∞时,显然其周长趋向于无穷大,面积趋向于零。

著名的埃菲尔铁塔正是以它作为平面图的.因为这种三角形结构可以节省材料而且强度大,虽然铁塔并没有把分形进行到无穷,但是它已经能在这种条件下完成了重力的转移,充分体现了这项工程的精彩,同时也显示了谢尔宾斯基三角形无尽的魅力.

二、分形树

分形树制作流程:

(1)画好线段AB,取中点C,双击B点,以B为旋转中心将C旋转120。

得E点,旋转一120。

得D点。

(2)新建参数n=3,依次选点A,B和n,用“深度迭代”将,B映射到B,E和B,D就

可以了.然后可以改变参数,观看分形树的生长。

n=2

n=3

n=10

 

1.在垂直方向上画线段AB,在AB左上区域任取一点C。

2.度量CB,BA的长度,计算CB/BA;度量CBA的大小。

3.双击C点作为旋转中心,旋转角度为CBA,旋转B得到点E;继续以CB/BA为缩放比例,E点缩为F点;双击线段CB作为标记镜面,得到F点关于线段CB的对称点G。

连接GC,FC。

4.双击线段AB作为标记镜面,得到C、F、G关于线段AB的对称点D、H、I,连接BD、HD、ID。

5.新建参数n=3。

顺次选择A、B、C三点和参数n,作深度迭代,(A,B,C)(B,C,G),(B,C,F),(B,D,H),(B,D,I)。

n=2

n=3

n=4

n=5

毕达哥拉斯树

【步骤】

1.在屏幕上以任取两点A和B,作正方形ABCD,以CD为直径作圆O,取半圆弧OCD,在该弧上任取一点E,接CE,DE。

隐藏不必要的对象。

2.填充四边形ABCD,度量ABCD的面积。

选择四边形和度量结果,单击【显示】【颜色】【参数】。

则四边形的颜色会随它的面积变化而变化。

3.新建参数n=4,选择A、B和n,作深度迭代,(A,B)

(D,E),(E,C)。

n=3

n=4

n=5

n=10

n=20

L—分形树

1、构造初始元

作始元竖直线段AB,在AB上作两点A1,A4,以A1为中心分别按角度36度旋转B得到B1,按角度126度旋转A4得到B4,以B为中心分别按角度-171度旋转A1为B2,按角度144度旋转A1为B3,连接A1B1、BB2、BB3、A4B4、得到以下生成元

生成元

2、删除生成元中的四枝杈线段,显示出初始元AB,新建参数n=5,以n为深度,将生成元A—B分别在A1—B1,B—B2,B—B3,A4—B4上执行深度迭代,隐藏各点得到L—分形树。

n=6(L—分形树)

以上方法所作的分形树是线性(自相似)分形树,其变换是相似变换,属于确定型L—分形,不能得到生动逼真的植物拟态图形。

要模拟出栩栩如生的植物形态,就要引入随机L—分形。

1、作始元

做初始元竖直线段AB和线段CD,在CD上作点P,度量出点P在线段CD上的值,按下图左侧公式计算度量值。

标记m1,以A为缩放中心B得A1,以B为缩放中心A得A4。

标记m2,以A1为中心旋转B得B1。

标记m3,以B为中心旋转A4得B2。

标记m4,以B为旋转中心旋转A1得B3;标记m5,以A4为标记中心旋转A得B4,连接连接A1B1、BB2、BB3、A4B4、得到以下生成元

生成元:

 

2、删除生成元中的四枝杈线段,显示出初始元AB,新建参数n=5,以n为深度,将生成元A—B分别在A1—B1,B—B2,B—B3,A4—B4上执行深度迭代,隐藏各点得到随机分形树。

n=6(随机分形下的L分形树)

桧树分形小枝

绘制桧树分形小枝的生成元

同Koch曲线生成元的构造类似,桧树分形小枝生成元的构造也是通过一定的规则对单位长线段F0进行修改变换而得到。

具体变换规则如下:

如下图所示,桧树分形小枝的生成元由五条长度相等的线段组成,设每条线段长度为r,第一条线段AC和最后一条线段EB与水平线的夹角相等,都是10°,AC左端点A与F0左端点重合,EB右端点B与F0右端点重合,CD与CE成60°角,EF与EB成60°角。

具体C++程序设计语言如下:

#include/*添加绘图函数头文件*/

#include/*添加数学函数头文件*/

#include

#include

usingnamespacestd;

#definepi3.1415926

voidhuishu(doublex0,doubley0,doublex1,doubley1,intk);

intmain(void)

{

intn,gdriver=DETECT,gmode;/*定义迭代次数n*/

printf("Pleaseinputthevalueofthepositiveintegern(n<9):

");

cin>>n;

/*输入迭代次数n*/

initgraph(&gdriver,&gmode,"");/*图形系统初始化*/

setcolor(GREEN);

huishu(50,250,550,250,n);/*画桧树分形小枝*/

getch();

closegraph();

return0;

}

voidhuishu(doublex0,doubley0,doublex1,doubley1,intk)

{

doublex2,y2,x3,y3,x4,y4,x5,y5,x11,y11,x22,y22;

doubler,t;

t=pi/18;

r=(2*cos(t)-sqrt(4*cos(t)*cos(t)-3.0))/3.0;/*r的计算式*/

x11=r*x1+(1-r)*x0;

y11=r*y1+(1-r)*y0;

x22=r*x0+(1-r)*x1;

y22=r*y0+(1-r)*y1;

x2=(x11-x0)*cos(t)-(y11-y0)*sin(t)+x0;

y2=(x11-x0)*sin(t)+(y11-y0)*cos(t)+y0;

x4=(x22-x1)*cos(t)-(y22-y1)*sin(t)+x1;

y4=(x22-x1)*sin(t)+(y22-y1)*cos(t)+y1;

x3=(x4-x2)*cos(6*t)-(y4-y2)*sin(6*t)+x2;

y3=(x4-x2)*sin(6*t)+(y4-y2)*cos(6*t)+y2;

x5=(x1-x4)*cos(-6*t)-(y1-y4)*sin(-6*t)+x4;

y5=(x1-x4)*sin(-6*t)+(y1-y4)*cos(-6*t)+y4;

if(k>1){

huishu(x0,y0,x2,y2,k-1);huishu(x2,y2,x3,y3,k-1);

huishu(x2,y2,x4,y4,k-1);

huishu(x4,y4,x5,y5,k-1);

huishu(x4,y4,x1,y1,k-1);

}

else{

line(x0,y0,x2,y2);

line(x2,y2,x3,y3);

line(x2,y2,x4,y4);

line(x4,y4,x5,y5);

line(x4,y4,x1,y1);

}

}

n=5

 

n=10时,计算机运行时,可以动态模拟迭代的过程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1