1分形图基本图形以及源程序

  • 格式:doc
  • 大小:534.50 KB
  • 文档页数:19

下载文档原格式

  / 19
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);