1分形图基本图形以及源程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分形图基本图形以及源程序
第一部分
本人新手,如有错误请指正。程序完成于2011/6/17晚间到2011/6/18。
很多变量名称采用的是同学的姓名拼音,为的是告诉大家这些都是可以随意命名的变量或函数名,一般大写字母开头的是系统定义的变量不可以随意更改。
一、(*雪花*)
源程序
lovelyduwangen[zhengguojie_List]:=Block[{weihuayan={},i,wuxiaonan=Length[zhe ngguojie],gengping=60Degree,sa=Sin[gengping],ca=Cos[gengping],c,d,e,T={{ca,-sa} ,{sa,ca}}},
For[i=1,i< wuxiaonan,i++,c=zhengguojie[[i]]*2/3+zhengguojie[[i+1]]/3;
e=zhengguojie[[i]]/3+zhengguojie[[i+1]]*2/3;
d=c+T.(e-c);
weihuayan=Join[weihuayan,{zhengguojie[[i]],c,d,e,zhengguojie[[i+1]]}]];
weihuayan]
dongquanfa={{0,0},{1/2,Sqrt[3]/2},{1,0},{0,0}};
Show[Graphics[Line[Nest[lovelyduwangen,dongquanfa,0]],AspectRatio→Sqrt[3]/2]] Show[Graphics[Line[Nest[lovelyduwangen,dongquanfa,5]],AspectRatio→Sqrt[3]/2]] 基本生成元
二、(*上三角下三角1*)
lovelyduwangen[zhengguojie_List]:=Block[{weihuayan={},i, wuxiaonan =Length[zhengguojie],gengping=60Degree,sa=Sin[gengping],ca=Cos[gengping],c,d,g ,f,e,T={{ca,-sa},{sa,ca}},S={{ca,sa},{-sa,ca}}},
For[i=1,i< wuxiaonan,i++,c=zhengguojie[[i]]*3/4+zhengguojie[[i+1]]/4;
e=zhengguojie[[i]]/2+zhengguojie[[i+1]]/2;
f=zhengguojie[[i]]/4+zhengguojie[[i+1]]*3/4;
d=c+T.(e-c);
g=e+S.(f-e);
weihuayan=Join[weihuayan,{zhengguojie[[i]],c,d,e,g,f,zhengguojie[[i+1]]}]];
weihuayan]
dongquanfa={{0,0},{1,0}};
Show[Graphics[Line[Nest[lovelyduwangen,dongquanfa,1]],AspectRatio→Sqrt[3]/2]] Show[Graphics[Line[Nest[lovelyduwangen,dongquanfa,4]],AspectRatio→Sqrt[3]/2]] 基本生成元
(*上三角下三角2*)
lovelyduwangen[zhengguojie_List]:=Block[{weihuayan={},i, wuxiaonan =Length[zhengguojie],gengping=60Degree,sa=Sin[gengping],ca=Cos[gengping],c,d,g ,f,e,T={{ca,-sa},{sa,ca}},S},
For[i=1,i< wuxiaonan,i++,c=zhengguojie[[i]]*3/4+zhengguojie[[i+1]]/4;
e=zhengguojie[[i]]/2+zhengguojie[[i+1]]/2;
f=zhengguojie[[i]]/4+zhengguojie[[i+1]]*3/4;
d=c+T.(e-c);
S=Transpose[T];
g=e+S.(f-e);
weihuayan=Join[weihuayan,{zhengguojie[[i]],c,d,e,g,f,zhengguojie[[i+1]]}]];
weihuayan]
dongquanfa={{0,0},{1,0}};
Show[Graphics[Line[Nest[lovelyduwangen,dongquanfa,1]],AspectRatio→Sqrt[3]/2]] Show[Graphics[Line[Nest[lovelyduwangen,dongquanfa,4]],AspectRatio→Sqrt[3]/2]]图形同上
(*上三角下三角3*)
lovelyduwangen[zhengguojie_List]:=Block[{weihuayan={},i, wuxiaonan =Length[zhengguojie],gengping=90Degree,sa=Sin[gengping],ca=Cos[gengping],c,d,d 1,g1,g,f,e,T={{ca,-sa},{sa,ca}},S},
For[i=1,i< wuxiaonan,i++,c=zhengguojie[[i]]*3/4+zhengguojie[[i+1]]/4;
e=zhengguojie[[i]]/2+zhengguojie[[i+1]]/2;
f=zhengguojie[[i]]/4+zhengguojie[[i+1]]*3/4;
d=c+T.(e-c);
d1=d+e-c;
S=Transpose[T];
g=e+c-d;
g1=g+f-e;
weihuayan=Join[weihuayan,{zhengguojie[[i]],c,d,d1,e,g,g1,f,zhengguojie[[i+1]]}]];
weihuayan]
dongquanfa={{0,0},{1,0}};
Show[Graphics[Line[Nest[lovelyduwangen,dongquanfa,1]],AspectRatio→1/2]] Show[Graphics[Line[Nest[lovelyduwangen,dongquanfa,4]],AspectRatio→1/2]]
图形同上
三、(*上正方下正方形*)
lovelyduwangen[zhengguojie_List]:=Block[{weihuayan={},i, wuxiaonan =Length[zhengguojie],gengping=90Degree,sa=Sin[gengping],ca=Cos[gengping],c,d,d 1,g1,g,f,e,T={{ca,-sa},{sa,ca}},S},
For[i=1,i< wuxiaonan,i++,c=zhengguojie[[i]]*3/4+zhengguojie[[i+1]]/4;
e=zhengguojie[[i]]/2+zhengguojie[[i+1]]/2;
f=zhengguojie[[i]]/4+zhengguojie[[i+1]]*3/4;
d=c+T.(e-c);
d1=e+T.(f-e);
S=Transpose[T];
g=e+S.(f-e);
g1=f+S.(f-e);