专业实训1期末报告_第1页
专业实训1期末报告_第2页
专业实训1期末报告_第3页
专业实训1期末报告_第4页
专业实训1期末报告_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云南大学软件学院专业实必I报告

MajorPracticeReport

SchoolofSoftware,YunnanUniversity

成绩

序号学号姓名成绩

120101120093

220101120288

320101120304

420101120161

学期:2012学年春季学期

课程名称:专业实训(1)

任课教师:__________

小组长_______

联系电话:

电子邮件:

MajorPracticeReport

目录

一、成绩考核表-----------------------------------------------3

二、小组分工明细表-------------------------------------------7

三、项目----------------------------------------------------8

3.1摘要、问题描述--------------------------------------8

3.2设计-------------------------------------------------9

3.3测试结果及小结-------------------------------------11

3.4代码------------------------------------------------12

四、项目二

4.1摘要、问题描述-------------------------------------16

4.2设计------------------------------------------------17

4.3测试结果及小结-------------------------------------

4.4代码-------------------------------------------------

五、项目三

5.1摘要、问题描述--------------------------------------8

5.2设计-------------------------------------------------9

5.3测试结果及小结-------------------------------------

5.4代码-------------------------------------------------

2SchoolofSoftware,YunnanUniversity.(2010)

云南大学软件学院2012学年春季学期

《专业实训(1)》成绩考核表

(组内每位同学一份)

课程名称:专业实训(1)年级:2010级专业:数字媒体技术

学号:20101120093姓名:蒋丹妮本人承担角色:组长

指标内容分值指标内涵及评估标准得分

解决的关键选的准,范围合只抓住了部分关没有抓住关键

10基本上选准

技术问题适,重点突出键问题问题

技术路线的合理可行,具体不够合理或不

10合理可行,具体基本合理可行

可行程度且有创新够具体

小组成员的

工作量(每高出平均要求工高出平均要求工达到平均要求工低于平均要求

15

个人分别打作量的15%以上作量作量的工作量

分)

项目完成的难度很大,超出难度较大,达到难度一般,达到

难度小,很容

技术水平15一般本科生要求本科毕业论文水普通课程要求水

易实现

(个人)水平平平

达到预期目

10完全达到基本达到无法预见未能达到

标的程度

团队合作精很强的团队合作合作不好,各

10合作情况良好合作情况一般

神精神自为政

5报告非常完整报告比较完整完整程度一般报告不完整

5逻辑结构清晰逻辑组织较好逻辑组织一般逻辑不清

5内容非常丰富内容较丰富内容一般内容欠缺

报告撰写质

文字表达差,

量5文字表达非常好文字表达较好文字表达一般

意思不明了

(30分)

图表制作非常专图件制作效果

5图件制作良好图件制作一般

业化差

5整体效果很好整体效果良好整体效果一般整体效果差

综合得分:(满分100分)

指导教师:李劲2012年7月1日

MajorPracticeReport

云南大学软件学院2012学年春季学期

《专业实训(1)》成绩考核表

(组内每位同学一份)

课程名称:专业实训(1)年级:2010级专业:数字媒体技术

学号:20101120288姓名:张夕璞本人承担角色:________组员_________

指标内容分值指标内涵及评估标准得分

解决的关键选的准,范围合只抓住了部分关没有抓住关键

10基本上选准

技术问题适,重点突出键问题问题

技术路线的合理可行,具体不够合理或不

10合理可行,具体基本合理可行

可行程度且有创新够具体

小组成员的

工作量(每高出平均要求工高出平均要求工达到平均要求工低于平均要求

15

个人分别打作量的15%以上作量作量的工作量

分)

项目完成的难度很大,超出难度较大,达到难度一般,达到

难度小,很容

技术水平15一般本科生要求本科毕业论文水普通课程要求水

易实现

(个人)水平平平

达到预期目

10完全达到基本达到无法预见未能达到

标的程度

团队合作精很强的团队合作合作不好,各

10合作情况良好合作情况一般

神精神自为政

5报告非常完整报告比较完整完整程度一般报告不完整

5逻辑结构清晰逻辑组织较好逻辑组织一般逻辑不清

5内容非常丰富内容较丰富内容一般内容欠缺

报告撰写质

文字表达差,

量5文字表达非常好文字表达较好文字表达一般

意思不明了

(30分)

图表制作非常专图件制作效果

5图件制作良好图件制作一般

业化差

5整体效果很好整体效果良好整体效果一般整体效果差

综合得分:(满分100分)

指导教师:李劲2012年7月1日

4SchoolofSoftware,YunnanUniversity.(2010)

云南大学软件学院2012学年春季学期

《专业实训(1)》成绩考核表

(组内每位同学一份)

课程名称:专业实训(1)年级:2010级专业:数字媒体技术

学号:20101120304姓名:马通本人承担角色:________组员_________

指标内容分值指标内涵及评估标准得分

解决的关键选的准,范围合只抓住了部分关没有抓住关键

10基本上选准

技术问题适,重点突出键问题问题

技术路线的合理可行,具体不够合理或不

10合理可行,具体基本合理可行

可行程度且有创新够具体

小组成员的

工作量(每高出平均要求工高出平均要求工达到平均要求工低于平均要求

15

个人分别打作量的15%以上作量作量的工作量

分)

项目完成的难度很大,超出难度较大,达到难度一般,达到

难度小,很容

技术水平15一般本科生要求本科毕业论文水普通课程要求水

易实现

(个人)水平平平

达到预期目

10完全达到基本达到无法预见未能达到

标的程度

团队合作精很强的团队合作合作不好,各

10合作情况良好合作情况一般

神精神自为政

5报告非常完整报告比较完整完整程度一般报告不完整

5逻辑结构清晰逻辑组织较好逻辑组织一般逻辑不清

5内容非常丰富内容较丰富内容一般内容欠缺

报告撰写质

文字表达差,

量5文字表达非常好文字表达较好文字表达一般

意思不明了

(30分)

图表制作非常专图件制作效果

5图件制作良好图件制作一般

业化差

5整体效果很好整体效果良好整体效果一般整体效果差

综合得分:(满分100分)

指导教师:李劲2012年7月1日

MajorPracticeReport

云南大学软件学院2012学年春季学期

《专业实训(1)》成绩考核表

(组内每位同学一份)

课程名称:专业实训(1)年级:2010级专业:数字媒体技术

学号:20101120161姓名:张正本人承担角色:组员

指标内容分值指标内涵及评估标准得分

解决的关键选的准,范围合只抓住了部分关没有抓住关键

10基本上选准

技术问题适,重点突出键问题问题

技术路线的合理可行,具体不够合理或不

10合理可行,具体基本合理可行

可行程度且有创新够具体

小组成员的

工作量(每高出平均要求工高出平均要求工达到平均要求工低于平均要求

15

个人分别打作量的15%以上作量作量的工作量

分)

项目完成的难度很大,超出难度较大,达到难度一般,达到

难度小,很容

技术水平15一般本科生要求本科毕业论文水普通课程要求水

易实现

(个人)水平平平

达到预期目

10完全达到基本达到无法预见未能达到

标的程度

团队合作精很强的团队合作合作不好,各

10合作情况良好合作情况一般

神精神自为政

5报告非常完整报告比较完整完整程度一般报告不完整

5逻辑结构清晰逻辑组织较好逻辑组织一般逻辑不清

5内容非常丰富内容较丰富内容一般内容欠缺

报告撰写质

文字表达差,

量5文字表达非常好文字表达较好文字表达一般

意思不明了

(30分)

图表制作非常专图件制作效果

5图件制作良好图件制作一般

业化差

5整体效果很好整体效果良好整体效果一般整体效果差

综合得分:(满分100分)

指导教师:李劲2012年7月1日

6SchoolofSoftware,YunnanUniversity.(2010)

小组分工明细表:

小组人员及职务项目一项目二项目三

(Mandelbort集(L-system绘制)(逾渗检测)

合图像绘制)

蒋丹妮(组长)图像的放大以及Lstate类的编写PandE类以及

协调分配其它工以及文档的编写percolation类的

作编’号

张夕璞(组员)Draw_MandelbrotL-system类的编临界渗漏概率任

类的匾写及书写写务的实现

文档

马通(组员)复数类的编写及Draw类的编写边类和点类及文

文档修改档的编写

张正(组员)Main函数的编写Main函数的编写项目测试和截图

和测试和测试

项目一Mandelbrot集在复平面上的绘制与放大

MajorPracticeReport

中文摘要

本次项目用JAVA实现了Mandelbrot集在复平面上的绘制功能,并且用户可

以通过用鼠标点击绘制平面上的点对Mandelbrot集的图像进行局部放大。在复

平面上绘制出复数点阵集合,自行设置点的采样数,判定各个点是否满足条件公

式,若满足条件则绘制为黑色,若不满足则绘制点的颜色随着迭代次数的变化而

变化,最终将呈现出五彩缤纷的图案效果。用户点击绘制平面上的点,程序立即

对鼠标点击的区域进行放大,即缩小显示区域,提高单位面积内的采样数,展现

图像更多细节。通过记录鼠标点击的坐标中心位置,推算出其他正方形四点坐标,

进行与以前窗口相同大小的绘制。

英文摘要

TheMandelbrotsetisamathematicalsetofpointswhoseboundaryis

adistinctiveandeasilyrecognizabletwo-dimensionalfractalshape.The

setiscloselyrelatedtoJuliasets(whichincludesimilarlycomplex

shapes),andisnamedafterthemathematicianBenoitMandelbrot,who

studiedandpopularizedit.

Moreprecisely,theMandelbrotsetisthesetofvaluesofcinthe

complexplaneforwhichtheorbitof0underiterationofthecomplex

quadraticpolynomialzn+1=zn2+cremainsbounded.Thatis,acomplex

numbercispartoftheMandelbrotsetif,whenstartingwithzO=0and

applyingtheiterationrepeatedly,theabsolutevalueofznremains

boundedhoweverlargengets.

ThisprojectistodrawimagewhichisbasedontheMandelbrotset

byusingtheJAVAlanguage,anduserscanusethemousetoenlargeimage

oftheMandelbrotset.Drawthelatticecollectiononthecomplexplane

dependedonthenumberofsamples

setbyuser,thendeterminewhethereachpointmeetsthecondition:

々+i.ifthepointmeetthecondition,setitblack,ifnotset

itothercolor.

第一、问题描述

曼德勃罗特集是人类有史以来做出的最奇异,最瑰丽的几何图形.曾被称为

“上帝的指纹”。⑴这个点集均出自公式:Zn+l=(Zn),2+C,这是一个迭代公式,式

中的变量都是复数.通过这个迭代公式可以生成Mandelbrot集的图像。

本次项目的内容就是用JAVA实现Mandelbrot集的图像的绘制,并且用户

8SchoolofSoftware,YunnanUniversity.(2010)

可以通过鼠标进行对Mandelbrot集的图像的局部放大。在复平面上绘制出复数

点阵集合,自行设置点的采样数,判定各个点是否满足条件公式,若满足条件则

绘制为黑色,若不满足则绘制点的颜色根据迭代次数的大小进行划分,并根据用

户用鼠标点击的区域进行放大(所谓的放大就是将鼠标点击的坐标中心位置记录

下,并根据坐标推算出其他正方形四点坐标,进行与以前窗口相同大小的绘制)。

[1]摘自百度百科

第二、概要设计

(-)主程序模块

main函数中包含了三个模块:

1.设置了坐标X,Y的范围以及他们之间的刻度:cpDraw.setX(xl,xh,ss);

cpDraw.setY(yl,yh,ss);

2.定义了first为Draw_Mandelbrot类的类型函数,传递的参数为xl,xh,

yl,yh,s,Max

3.定义了a为mouse_Enlarge类的类型函数,传递的参数为:xl,xh,yl,

yh,ss,s,Max

(二)各子程序模块

1.Complex类中主要定义了复数的加减乘运算:

a)返回值为复数、传递的参数为复数的Cplus函数定义了复数的相加运算;

b)同样的情况下定义了Cmilus复数相减运算,Cmult复数相乘运算;

c)定义了I_Mandelbrot这个函数目的为了返回迭代次数,方便调用。

2.Draw_Mandelbrot类中定义了Draw_Mande1brot函数

a)在Draw_Mandelbrot函数中调用了Copmlex类中的I_Mandelbrot函数求

得了迭代次数;

b)判定迭代次数是否与最大迭代数相等,然后根据迭代次数进行颜色的判

定。

3.mouse_Enlarge类中

a)确定了鼠标点击的XY坐标,mx,my;

b)求得放大后正方形四点的坐标后调用了cpDrawsetXOjcpDrawsetY0;重

新进行了X,Y坐标轴的定义;

c)定义了then为DrawMandelbrot类的类型函数来再次绘制图形。

第三、详细设计

(一)ADT抽象数据类型----complex

1.数据对象构建一个复数类

MajorPracticeReport

2.数据关系两个操作数real和imag具有序偶关系,real表示实部,

imag表示虚部。

3.基本操作

a)Complexcmilus(Complexrhs)

操作结果:实现两个复数的减法。

b)Complexcplus(Complexrhs)

操作结果:实现两个复数加法,并输出结果。

c)publicComplexemuIt(Complexrhs)

操作结果:实现两个复数乘法,并输出结果。

d)intI_Mandelbrot(intmaxIter)

操作结果:判定复数点是否属于Mandelbrot集,并输出最

大迭代次数。

(-)定义复数类以及内部运算操作:

包括了复数的初始化,加法,减法,乘法,以及求模运算,Mandelbrot

集合的判定函数,其返回值为整型的迭代次数。

1.进行了复数的初始化;

2.定义了复数的求模运算调用了Math,hypot;

3.定义了复数的相加运算,由于传递的参数是一个复数,故复数的相加运

算就是第一个复数的实部加第二个复数的实部,第一个复数的虚部加第

二个复数的虚部,最后把相加的实部虚部返回到新的复数z中;

4.减法同加法类似;

5.乘法运算也是通过找准第一个复数与第二个复数的实部虚部

(this,real,

this,imag)进行了复数z模大小的判定,看起是否少于2;

6.z=z.cmult(z).cplus(this);此步是进行4+1=2)+zo条件的判定。

(三)绘制Mandelbrot集合的函数实现(即Draw_Mandelbrot类的定义)

1.在main函数中把采样数S,X,Y坐标范围值以及迭代次数传递进来,然

后通过for循环进行采样点的绘制:

for(intj=0;j<s-l;j++)

for(intk=0;k<s-l;k++)

2.然后定义了点阵图中所有点的X,Y坐标:a=xl+j*(xh-xl)/s;

b=yl+k*(yh-yl)/s;

3.它们赋值给zO集合:ComplexzO=newComplex(a,b);

4.调用I_Mandelbrot函数返回迭代次数:

iterNum=zO.I_Mandelbrot(Max);

5.最后进行颜色值的判定:

ioSchoolofSoftware,YunnanUniversity.(2010)

cpDraw.setPenColor

(newColor((255-iterNum*20%255),(255-iterNum*12%255),

(255-iterNum*10%255))

(四)鼠标点击的放大

1.确定鼠标点击X,Y的坐标:

mx=cpDraw.mouseXO;my=cpDraw.mouseY();

2.然后取边长为原图1/10,再进行正方形四个点坐标的计算,即:

nxl=mx-(x2-xl)*0.5*0.1;

nx2=mx+(x2-xl)*0.5*0.1;

nyl=my-(y2-yl)*0.5*0.1;

ny2=my+(y2-yl)*0.5*0.1;

3.最后重新专递参数给DrawMandclbrot,即:

Draw_Mandelbrotthen=newDraw_Mandelbrot(nxl,nx2,nyl,ny2,s,

Max);

第四、测试结果

工XSet;(-1.004.-0.596,0.004)YSet^9.46.«OQ52.(XOO4)

Fde

MajorPracticeReport

第五、总结

蒋丹妮:

这次实验我主要负责的是图像放大功能的实现,以及协调分配整个小组的工

作,确保项目进度。在做实验的过程中遇到的主要问题是坐标的转换,一开始没

有想清楚具体的算法就开始敲代码,整个思维没有理清,耽误了很多时间。而后

来在写代码的过程中失误把变量的名字敲错了,导致整个程序不能正确运行,调

错调了很久才发现是犯了这样低级的错误。

经过这次项目的锻炼,我意识到在实际开发项目的过程中,首先对项目有一

个整体的分析和设计很重要。具体的代码只是实现的细节,一开始就陷入到细节

中去就很容易迷失方向,误入歧途。调错的时候也有很多方法可以借鉴和学习,

通过这次实验我也发现了自己在这方面经验上的不足。以后我要多动手,多思考,

总而言之就是要经历各种磨练才能成为一个合格的软件开发人员吧。

张夕璞:

这次项目中我负责的Draw_Mandelbrot这个类,它的功能只要完成的是曼

德布洛特集合的绘制,在这个类里主要完成的任务是绘制出满足曼特布洛特集合

的点阵,通过调用Complex类来实现这一个目的。在设计的这个类的过程中进

一步的加深了我对java中类的理解,加深了对函数类型及返回值类型的理解,

12SchoolofSoftware,YunnanUniversity.(2010)

使我更熟悉面向对象程序的思想。同时项目让我意识到自己对面向对象的程序设

计还不是很熟悉,在编程的过程中会出现漏掉一下重要数据和写错变量名的问

题,在今后的学习中会养成良好的编程习惯,在犯错中不断进步。

马通:

本次项目的任务就是在画布上绘制一个曼德勃罗特集合图像并且用户可以对

鼠标点击的区域进行放大,在本次项目中我主要进行了复数类的定义,描述清楚

了复数的基本运算包括加减乘和求模,定义了判定Mandelbrot集合的条件,同

时对文档的编辑进行了修改。

本次任务让我清晰地认识到从类型使用者到类型制造者角色的转变的重要性,从

当初的使用java里默认的类型到现在自己定义的类型,加深了我们对数据结构

的理解。本次任务涉及到了复数的简单运算,我们也运用了简单的算法,进一步

的加深了我们对java中类的理解,加深了对函数类型及返回值类型的理解,使

我们更熟悉面向对象程序的思想。同时本次任务让我们意识到自己的编程能力的

不足,平时缺乏练习,缺乏思考。并且通过本次任务使我们清晰地意识到一个好

的程序需要一个好的算法,需要好的数据结构。

张正:

实验main函数的编写和测试。曼德布洛特集项目的主要目的是绘制一个用户

能通过点击鼠标来放大曼德布罗特图像的图形,从而了解Java中类的概念。本

次试验的练习让我知道团队合作的重要性,意识到一个好的程序需要一个好的算

法,需要好的数据结构。同时由于对编程的不熟悉,在操作的过程中时常出现各

种问题。在以后的学习过程中,我会加强训练,在不断学习中进步。

第六、代码

importYnu.Sei.cpLibrary.BASIC.cpDraw;

publicclassmain{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

doublexl=-2,xh=2,yl=-2,yh=2,ss=0.01;

ints=500,Max=100;

cpDraw.setX(xl,xh,ss);〃定义了X坐标的范围

cpDraw.setY(yl,yh,ss);〃定义了Y坐标的范围

Draw_Mandelbrotfirst=newDraw_Mandelbrot(xl,xh,yl,yh,s,

Max);

MajorPracticeReport

〃传递参数进入DrawMandelbrot这个类中进行Mandelbrot集合的绘制

mouse_Enlargea=newmouse_Enlarge(xl,xh,yl,yh,ss,s,Max);

)

〃传递参数进入mouse_Enlarge这个类中进行鼠标点击区域的放大

publicclassComplex{

/*数据定义部分*/

doublereal;〃复数的实部

doubleimag;〃复数的虚部

/*数据定义及实现部分*/

publicComplex(){real=0;imag=0;};

publicComplex(doubler,doublei){real=r;imag=i;};

publicdoublereal(){returnreal;};

publicdoubleimag(){returnimag;};

publicStringtoString(){returnthis・real+〃+〃+this・imag+〃i〃;};

publicdoubleabs(){returnMath,hypot(real,imag);}//初始化复数

publicComplexcplus(Complexrhs){

doublea,b;

a=this.real+rhs.real;

b=this.imag+rhs.imag;

Complexz=newComplex(a,b);

returnz;

);〃复数加法

publicComplexcmilus(Complexrhs){

doublea,b;

a=this.real-rhs.real;

b=this.imag-rhs.imag;

Complexz=newComplex(a,b);

returnz;

};〃复数减法

publicComplexcmult(Complexrhs){

doublea,b;

a=this.real*rhs.real-this.imag+rhs.imag;

b=this.real*rhs.imag+this.imag+rhs.real;

Complexz=newComplex(a,b);

returnz;

14SchoolofSoftware,YunnanUniversity.(2010)

);〃复数乘法

publicintI_Mandelbrot(intmaxiter){

intiterNum=0;

Complexz=newComplex(0,0);

while(z.abs()<2&&iterNum<maxIter){

z=z.cmult(z).cplus(this);//此步是进行4+1=/)+%条件的

判定

iterNum++;

)

returniterNum;

)

)

importjava.awt.Color;

importYnu.Sei.cpLibrary.BASIC.cpDraw;

publicclassDraw_Mandelbrot{

DrawMande1brot(doublexl,doublexh,doubleyl,doubleyh,int

s,intMax){

doublea,b;

intiterNum;

for(intj=0;j<s-l;j++){

for(intk=0;k<s-l;k++){

a=xl+j*(xh-xl)/s;

b=y1+k*(yh-yl)/s;

Complexz0=newComplex(a,b);

iterNum=zO.I_Mandelbrot(Max);

if(iterNum==Max){

〃用黑色绘制z0

cpDraw.setPenColor(Color,black);

cpDraw.Point(zO.real,zO.imag);

)

cpDraw.setPenColor

(newColor((255-iterNum*20%255),(255-iterNum*12%255),

(255-iterNum*10%255

)

)

MajorPracticeReport

)

mportYnu.Sei.cpLibrary.BASIC.cpDraw;

publicclassmouse_Enlarge{

mouse_Enlarge(doublexl,doublex2,doubleyl,doubley2,double

ss,ints,intMax){

doublemx,my;〃记录鼠标点击的位置

doublenxl,nx2,nyl,ny2;〃用于表示新的显示窗口大小

〃ss为坐标精度,s为采样数的平方根,Max为最大迭代次数

while(true){

if(cpDraw.mousedieked()&&

cpDraw.mousedickedCount()==1){

mx=cpDraw.mouseXO;

my=cpDraw.mouseY();

if((mx>xl+(x2-xl)*0.5*0.I)&&(mx<x2-(x2-xl)*0.5*0.1)

&&(my>yl+(y2-yl)*0.5*0.I)&&(my<y2-(y2-yl)*0.5*0.1)){

〃判定鼠标点击位置是否越界,越界将不进行任何操作

cpDraw.clear();〃清屏

nxl=mx-(x2-xl)*0.5*0.1;〃放大十倍

nx2=mx+(x2-xl)*0.5*0.1;

nyl=my-(y2-yl)*0.5*0.1;

ny2=my+(y2-yl)*0.5*0.1;

ss=ss*0.1;

cpDraw.setX(nxl,nx2,ss);

cpDraw.setY(ny1,ny2,ss);

Draw_Mande1brotthen=newDraw_Mandelbrot(nxl,nx2,nyl,

ny2,s,Max);

)

)

16SchoolofSoftware,YunnanUniversity.(2010)

cpDraw.setmouseClickedFalse0;

)

})

项目二栈和队列的应用---L-system

中文摘要

本次项目的主要内容是编写一个L-system解释器,使得用户输入的规则得

到解释并生成相应图形。L-system采用字符串重写机制,通过产生式的不断迭

代形成字符串来指导画出图形。

用户输入的规则由一个个字符组成,每个字符对应着一种操作,这种操作由

解释器定义,如F表示画一条线段,+表示逆时针旋转一定的角度等。用户则可

以任意拼凑这些给出的字符,构成“规则”。解释器将会把最初的字符串F用这

些“规则”来替换,生成新的字符串,如F9F+RF]。新的字符串又可以再

次被解释(替换),用户可以自定义解释的次数,即迭代次数,来生成各种美妙

的图形。

英文摘要

AnL-systemorLindenmayersystemisaparallelrewritingsystem,

namelyavariantofaformalgrammar,mostfamouslyusedtomodelthe

growthprocessesofplantdevelopment,butalsoabletomodelthe

morphologyofavarietyoforganisms.[1]AnL-systemconsistsofanalphabet

odsymbolsthatcanbeusedtomakestrings,acollectionofproduction

ruleswhichexpandeachsymbolintosomelargerstringofsymbols,an

initial"axiom"stringsfromwhichtobeginconstruction,andamechanism

fortranslatingthegeneratedstringsintogeometricstructures.

ThisprojectistowriteanL-systeminterpretertotranslatetherules

userdefinedandgeneraterelevantgraph.Aruleconsistsofmany

characters,andeverycharacterstandsforanoperation,whichisdefined

byinterpreter.Forexample,'F'meansdrawa1ineand'+'meansrotate

directionofdrawingwithershinstheta.Userscangroupthecharacters

givenbyinterpreterfreewilltoformtherule.Andinterpreterwill

translatetheoriginalFcharacterintothenewstring,likeFF+[-

F].Userscandefinethenumberofiterations,togenerateallkindsof

beautifulgraph.

[l]CitingfromWikipedia

第一、问题描述

Lindenmayer系统简称L系统是1968年由匈牙利生物学家林登麦伊尔提出

MajorPracticeReport

的有关生长发展中的细胞交互作用的数学模型,尤其被广泛应用于植物生长过程

的研究。

L-system或被称为Lindenmayersystem是一个相似重写系统,是一系列

不同形式的正规语法规则,多被用于植物生长过程建模,但是也被用于模拟各种

生物体的形态。L-system也能用于生成自相似的分形,例如迭代函数系统。

L-system首创于1968年,创始人是荷兰Utrecht大学的生物学和植物学家,匈

JJ

牙利裔的AristidLindenmayer(1925—1989)O

使用L-系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论