
LOGO编程题 这个图形应该怎么画★
有朋友发来一个邮件说,上面的图形应该怎么画?
这个图形在LOGO语言中是一个非常基础的递归作图题,但是把这个问题说清楚对于许多初学者确是非常有益的。编写好的过程如下。
TO
LXZFX :L
IF :L>200 THEN STOP
FD :L RT 91
LXZFX
:L+1
END
输入DRAW HT LXZFX
1,就能画出前面的图形。图形中的鼠标箭头是另外加上去的。从箭头处能够看到,这个图形是向内卷曲的。
现在我们来分析一下过程为什么这样编写。
一、这各图形明显是一个从小到大螺旋着画出来的图形。使用尾递归画出多根线条组成整个图形。当你输入DRAW HT LXZFX
1后,作图窗口上就会出现前面的图形。输入这个命令,相当于连续执行200次FD :L RT
91命令。其中:L的长度是1、2、3、4、……199、200。当尾递归LXZFX :L+1使:L达到201时,执行IF
:L>200 THEN STOP,使画图停止下来。
二、这个程序中好包含着许多重要的信息:
RT 91命令中RT说明图形是右旋的。如果改写成LT 91,图形就是左旋的。
RT 91命令中91=90+1。这个90度被称为“临界角度”。这个“临界角度”决定了整个图形的形状。
临 界 角 度:
144度
120度
90度
72度
60度 ……
图形接近的形状: 5角星
正6边形 正方形 正5边形 正6边形 ……
画这一类的图形直接用“临界角度”画出来的是规则图形(正多边形或正多角星),更多的是是“加一点”或“减一点”角度。例如91=90+1是“加一点”。
“加一点”的图形是向内收敛卷曲的;“减一点”的图形是向外扩张发散的。这样的例子可以看后面的图形。“加”得太多、“减”得太多,画出来的图形都不好看。
TO LXZFX
:L中所给的:L是开始画的那根线的尺寸,LXZFX :L+1中的那个+1决定了图形越画越大,每根线的长度都增长1。当然也可以+2、+2.5,甚至-1、-3.如果是“减”图形将越画越小。
IF
:L>200 THEN
STOP命令中的200,决定了图形最终那根线的极限长度。在这个例子中是不得大于200。
三、明白了以上的道理,将这个程序改写成下面的样子,就成为画这一类图形的万能程序了。
TO LX :L :D :S
:T
IF :L>:T THEN STOP
FD :L RT :D
LX :L+:S :D :S :T
END

毫不夸张地说,万能程序的表现能力是非常强的。只要你有耐心,输入不同的参数,画出100个不同形态的图形绝对没有问题。
看了这些例图后,你对“临界角度”、“收敛”、“发散”明白了吗?
这里是新颖有趣的LOGO、DEV-C++语言之家
欢迎评论 欢迎转载
查找林老师博客最便捷的方法:
在百度、谷歌、搜狗、搜搜、雅虎、有道等搜索引擎中输入
林老师 LOGO
就能找到林老师博客文章了
查阅林老师最新发表文章的链接:
http://blog.sina.com.cn/lzs2099
快速检索数百篇博客提高阅读效率的链接:
《LOGO语言简明教程》及初学者题库
《LOGO语言画图编程题》目录
《LOGO及DEV-C++计算编程题》目录
《LOGO竞赛试题及解题分析指导》目录
《LOGO语言编程新理念及编程技巧》目录
《奥数及趣味数学问题》目录
《LOGO语言竞赛教程·习题集内容剖析》目录
《林老师话说天南地北》目录
初学者题库及编程技巧分析
查看林老师拍摄及推荐的照片的链接
林正山老师邮箱:
linzhengshan@21cn.com
因网络拥挤“纸条”常不能及时打开查阅。有信息尽量使用“评论”或邮件。
需要LOGO系统文件常用表格工具文件及DEV-C++系统文件的可以发邮件给林老师
声明:
林正山老师发表的文章及照片,媒体、网站或出版物未经本人许可谢绝进行任何形式的删节、改编、重组及转载。
允许个人博客按原文(含图片及附注)进行完整转载,转载时敬请注明本博作者姓名、文章原始出处,并以链接形式标明来源。
加载中,请稍候......