Logo提示符后输入:DRAW

Download Report

Transcript Logo提示符后输入:DRAW

Logo程序设计
第一讲 结识海龟
一提起Logo语言,人们立刻想到的是那只惹人喜欢的小
海龟以及一张张专注于海龟的孩子们的笑脸。
在1994年国家教委制定的《中小学计算机课程指导纲要》
中,把Logo语言确定为适合小学生学习的一种计算机语言,是
小学计算机课程教学内容模块之一。
一、Logo系统简介
二、Logo系统版本说明
三、启动Logo系统
一、Logo系统简介
Logo语言是美国的科学家西蒙·佩伯特教授领导
的人工智能小组于1967年开发出来的,以后又经过了
多次修改、升级。
20世纪80年代中期,Logo语言作为一门计算机教
学的入门语言,进入我国中小学计算机教育领域。
教育学家、心理学家和计算机专家从多方面探讨
了程序设计语言潜在的优势和对少年儿童的认知能力
的关系做了研究。“研究结果表明,学习Logo语言有助
于少年儿童认知能力的发展,促进了学生空间想象能
力的发展,并获得解决问题的能力。”
Logo语言是一种适合中小学生和初学者学习的
程序设计语言,它采用儿童十分喜欢的积木拼图方
式,通过海龟绘图来学习编制程序的一般方法,培
养学生的逻辑思维和创造才能。
Logo语言是一种结构化程序设计语言。它是交
互式的,为儿童提供了良好的编程环境;它是模块
化的,便于程序的修改与扩充;它是过程化的,包
含了过程、参数、变量等重要概念,并允许递归调
用;它有丰富的数据结构类型,有生动的图形处理
功能。
Logo语言不仅具备多种优秀程序设计语言的
特点,而且更接近自然语言,生动有趣,简单易
学,它能用直观的运动来体现编程的结果,让儿
童在游戏中进行思考,在趣味中学习,深受少年
儿童的欢迎。
通过Logo语言的教学,以学习一种“玩具”
为出发点,可以培养学生学习计算机的兴趣,使
他们初步了解计算机是如何工作的,为他们今后
学习其他高级程序语言设计铺设道路。
Logo语言特点
具有绘画、字表和会话功能
过程调用、结构化好、
简单易学、形象直观。
Logo语言展示了一个自由广阔的空
间,可在做中学、在学中玩,展示自己
的个性,激发想象力和创造力。
二、Logo系统版本说明
Logo系统有两种版本:
一种是运行在DOS操作系统之下的Logo4.0软件;
另一种是运行在Windows操作系统之下的PCLogo(汉化版)软件。
这两种Logo语言的命令大致相同,所列出来的
过程也是通用的。
LOGO4.0软件
PC for
Windows软件
1、在DOS环境下LOGO4.0
2、在Windows环境下Logo系统
3、DOS-Logo4.0屏幕状态
所使用的命令
屏幕工作状态
热 键
命
缩 写
令
DRAW
图文混合状态
编
SPLISTSCREEN
SS
<F2>
全文本状态
TEXTSCREEN
TS
<F3>
全图形状态
FULLSCREEN
FS
<F4>
辑
状
态
EDIT
<F10>
说明:①、所有的命令都可以用大写(或小写)来写;
②、所有的命令都可以用相应的“缩写”来写;
③、所有的命令都可以用相应的“热键”来完
成。
(1)、图文混合状态
(2)、全文本状态
(3)、全图形状态
“全屏幕作图状态下”海龟活动范围
⑴从源点的位置画一条横线, 称为X轴。
在X轴上, 从源点向右数, 有0~+316个
点;从源点向左数, 有0~-317个点。
⑵从源点的位置画一条纵线, 称为Y轴。
在Y轴上, 从源点向上数, 有0~+237个
点;从源点向下数, 有0~-236个点。
(4)、编辑状态
4、认识PC Logo窗口
菜
工
单栏
具栏
绘图窗口
原
点
命令窗口
提 示 符
调入 保存 打印 编辑
文件 文件
背 笔色 填充 海龟
景
样式 字型
色
继
续
菜单栏及工具栏功能
暂
停
中
断
三、启动与退出Logo系统
←在DOS环境下:双击LOGO图标
退出:在?状态下键入 BYE↙
←在Windows环境下:双击LOGO图标
退出LOGO系统,通常有两种方法:
• 命令方式
• 窗口方式
1、窗口方式
2、命令方式
第二讲、海龟作图
海龟就像是一个能听懂命令的机器人,它可以按照我
们的命令在屏幕上爬行,还能够留下爬行的足迹,便形成了
图形。所以,海龟就仿佛是我们作图的笔,而屏幕就可看作
是用来绘图的纸了。
我们必须给海龟下达一条条命令,指挥它按命令来执行。
因此我们首先要学习用来指挥海龟行动的最基本的命令。
一、从画一条线学起
二、从画正方形说起
三、画出奇妙的图案
执行命令形式
(1)、命令方式:在 Logo 提示符后输入一
条或多条命令,按回车键执行。在这种方式下,
一旦发现命令有错或者图形不符合要求要进行修
改的话,往往是一切从头做起。
(2)、程序方式:在编辑器里,通常要按先后
顺序编排好能完成某种操作的一系列命令。即编
写“过程”,它可定义、调试、保存,并能被反
复使用。在 Logo 提示符后输入以其过程名作为
“新命令”来执行。
一、从画一条线学起
1、怎样出现海龟?
启动进入LOGO系统,在“?”Logo提示符后输入:DRAW↙
【知识点】:绘图初始化命令
[格式]:DRAW
[功能]:屏幕清除干净,并设置为绘图和文本混合的显示状
态;海龟显示在屏幕的中央(这个点称为“源点”);海龟
设置成落笔、绘图的颜色为黑色、绘图笔的宽度为 1的状态;
屏幕的背景为白色;文本字体的宽度为 1的状态;绘图的显
示方式设置为“环绕模式”。DRAW命令所设置的模式,是
LOGO语言最常用的绘画模式。
2、怎样藏龟与显龟?
在“?”Logo提示符后输入:HT↙ (海龟从屏幕绘图区中消失)
在“?”Logo提示符后输入:ST↙(海龟重新显示在屏幕绘图区)
【知识点】: 基本的作图命令
命 令
初始化
格
式
简写
DRAW
功
能
出现海龟,初始化,设置图文本状态
隐龟
HIDETURTLE
HT
让海龟隐身
显龟
SHOWTURTLE
ST
让海龟重现
前进
FORWORD x
FD x
使海龟向前移动指定的 X步
后退
BACK x
BK x
使海龟向后倒退指定的 X步
右转
RIGHT n
RT n
海龟向右转 n度,(按顺时针方向)
左转
LEFT n
LT n
海龟向左转 n度,(按逆时针方向)
抬笔
PENUP
PU
把海龟的画笔提起来, 移动时不留下笔迹
落笔
PENDOWN
PD
让海龟下笔, 恢复海龟的画线功能
回家
HOME
笔擦
PENERASE
清屏复位 CLEARSCREEN
清屏
CLEAN
回源点。不清屏,不改变海龟的其它状态
PE
海龟移动擦掉原来图好的线条
CS
清屏幕。海龟回源点,颜色粗细花纹等不变
清屏幕。但不改变海龟当前的位置和方向
在操作中学
3、怎样画一条直线?(竖、横、斜、虚、……)
画竖线:?FD 100↙
(海龟按当前方向前进50步)
或 ?BK 100↙
(海龟按当前方向后退50步)
画横线:?RT
或 ?LT
90
90
FD
BK
100↙(海龟向右转90°后再前进100步)
100↙(海龟向左转90°后再后退100步)
画虚线:?CS FD 30 PU FD 30 PD FD 30 PU FD 30 PD FD 30↙
(这条命令中出现清屏命令[CS]、抬笔命令[PU]和落笔命令[PD])
4、怎样画直角三角形?
?CS FD 50 RT 90 FD 80 HOME↙
[HOME]:回家命令,指海龟不管在何处,立即就回到屏幕的中
心。)
几点注意事项
1、这些命令可分成两类:一类是带有参数的命令,如
FD :X要有步数、RT :N要有角度等,并且在命令和参数之
间还必须加上一个空格;另一类是不带参数的命令,如HT、
ST、PU、PD等。
2、计算机的回车键是一行命令的结束键。在LOGO语言
中一行可以只打一个命令,也可以连打几个命令再按回车
键,但命令和命令之间要用空格隔开,如FD 100 RT 90。
一定要在保证每一命令输入正确后再按回车键。
3、当执行完笔擦命令(PE)后,如果还要继续画线,
先要执行一下落笔命令(PD)。
4、在需要重复打某些命令时,可在“?”Logo提示符
状态下,使用↑、↓键进行选择。
动脑筋,画一画
二、从画正方形说起
1、怎样用学过的FD、BK、RT、LT等命令画正方形?假如
要画一个边长为80的正方形。
?DRAW
?FD 80
?FD 80
?FD 80
?FD 80
?DRAW
RT 90
?FD 80 LT 90
RT 90
?FD 80 LT 90
RT 90
?FD 80 LT 90
RT 90
?FD 80 LT 90
【注意】:仔细观察,是否发现用上的四行命令 FD 80 RT 90
或 FD 80 LT 90 是完全一样!有没有什么好办法把它简化?
2、在LOGO语言中,使用REPEAT命令可以使多次重复的
语句变得非常简单,提供方便绘制有规律的图形。
?DRAW↙
? REPEAT 4[FD 80 RT 90]↙
【知识点】:重复命令
[格式]:REPEAT :N[执行重复的命令]
[功能]:把方括号里的命令重复执行N次
[注意]:方括号里重复的所有命令必须写成一行,命令间用空
格隔开。
3、再画正三边形、正五边形、正六边形……?怎样使用重
复命令?从中找到什么规律?
⑴、画正三边形:REPEAT 3[FD 100 RT 120] 3×120=360
画正五边形:REPEAT 5[FD 100 RT 72]
5×72=360
画正六边形:REPEAT 6[FD 100 RT 60]
6×60=360
⑵、重复次数与旋转角度的关系:边数×转角=360°
旋转角度=360/边数;旋转图案的旋转角度=360/重复次数。
⑶、画正多边形:REPEAT 边数[FD 边长 RT 360/边数]
4、怎样画圆?
试一试:不断增加多边形的边数 REPEAT 36[FD 5 RT 10]
⑴、发现:在屏幕上的正36边形看起来和一个圆十分相近,
我们常用正36边形表示圆。
⑵、注意:圆的大小一般是由圆的半径的大小来确定的。
(圆周长与它的半径关系—π值)即可改为,
REPEAT 36[FD 半径*3.14/18 RT 10]
⑶、推出:用圆的半径来画圆,(:R 表示圆的半径,PI
代替π的值)
REPEAT 360[FD :R*PI/180 RT 1]
REPEAT 360[FD :R*PI/180 LT 1]
5、怎样画弧?(:N 表示弧度, :R 表示弧的半径)
左弧:REPEAT :N[FD :R*PI/180 LT 1]
右弧:REPEAT :N[FD :R*PI/180 RT 1]
6、怎样画长方形?(:A 表示宽,:B 表示长)
REPEAT 2[FD :A RT 90 FD :B RT 90]
7、怎样画平行四边形?
REPEAT 2[FD :B1 RT :J FD :B2 RT 180-:J]
8、怎样画正多角星?
⑴、画五角星:REPEAT 5[FD 80 RT 144]
⑵、画七角星:REPEAT 7[FD 90 RT 720/7]
⑶、画正多角星:REPEAT :N[FD :B RT :K*360/:N]
说明:一般正多角星的内角角度为NJ=(N-2K)*180/N,
其中K为整数,K的范围在1<K<N/2,且K与N没有公因数。
(当K=1时可以画出正N边形。)
9、怎样画空心正多角星?
REPEAT :N[FD :B RT 720/:N FD :B LT 360/:N]
⒀
动脑筋,画一画
45°
⑴
⑵
⑸
⑹
⑼
⑽
⑶
⑺
⑾
⑷
⑻
⑿
图一?repeat 16[ fd 80 bk 80 rt 360/16]
图二?repeat 4 [repeat 3[fd 40 rt 90 ] lt 180]
图三?Rt 15 repeat 5 [fd 100 rt 144]
图四?repeat 2[ fd 40 rt 90 fd 100 rt 90] rt 45
repeat 2[ fd 100 rt 90 fd 40 rt 90]
图五?repeat 8 [fd 80 rt 90 fd 20 bk 20 lt 90 bk 80 rt 360/8]
图六?repeat 4[ fd 100 bk 50 lt 90]
图七?lt 90 repeat 5[ fd 100 bk 100 rt 45]
图八?repeat 6[rt 90 fd 30 lt 90 fd 100 bk 100]
图九?repeat 12 [pu fd 20 pd fd 70 pu bk 90 rt 30]
图十?repeat 5 [fd 20 rt 90 fd 30 lt 90]
图11?repeat 8 [ rt 20 fd 100 bk 100 pu rt 70 fd 10 lt 90 pd]
图12? repeat 20[ pu fd 20 pd lt 18 fd 80 bk 80 rt 36 fd 80 bk 80 lt 18
pu bk 20 rt 20]
三、画出奇妙的图案
在重复命令中,还可以再使用重复命令,这叫做重复命令
的嵌套。Logo语言允许重复命令嵌套多层,即一级一级地嵌套
下去,但最经常使用的是二级嵌套与三级嵌套。为绘制各种复
杂的有规律的组合图形提供非常简单方法,这就是嵌套的魅力。
【知识点】:重复命令嵌套
[命令格式]:重复命令1[重复命令2[重复命令3[…]…]…]
[执行方式]:先执行最里层,后逐级向外执行。
以正方形作为基本图形为例,分析下列四种组合图形的规律性。
⑴
1
⑶
⑵
2
1
2
2
1
⑷
▲
组合种类
1
⑴、位置不变、方向改变。(图1)
REPEAT 4[REPEAT 4[FD 100 RT 90]RT 90]
2
2
⑵、位置改变、方向不变。(图2)
REPEAT 4[REPEAT 4[FD 50 RT 90]FD 50]
⑶、位置改变、方向也改变。(图3)
REPEAT 4[REPEAT 4[FD 50 LT 90]FD 50 RT 90]
⑷、位置不变、方向也不变。(图4)
REPEAT 4[REPEAT 4[FD 50 RT 90]]
图1
1
图2
2
1
图4
【指导说明】:
图3
⑴、对照海龟起始和画第二图形的着点,判断海龟的位
置和方向的变化。
⑵、在执行内层的重复命令后,注意是否要补上移动距
离或旋转角度 。
动脑筋,画一画
⑴
⑵
⑶
⑸
⑹
⑺
⑼
⑽
⑾
⑷
⑻
⑿
图1:repeat 4[ fd 40 repeat 4[fd 40 rt 90] bk 40 rt 90]
图2: repeat 4[ fd 40 repeat 3[fd 40 lt 90] fd 40 ]
图3:repeat 8[ repeat 3[ fd 40 rt 120] fd 40 rt 360/8]
图4:repeat 8[ repeat 3[ fd 30 lt 120] fd 30 rt 360/8]
图5:repeat 6[ repeat 4[fd 50 rt 90] rt 60]
图6:repeat 15[fd 35 rt 24 fd 35 rt 156 fd 35 rt 24 fd 35 rt 204]
图7:rt 180 repeat 6[repeat 4[fd 50 rt 90] rt 8]
lt 48
repeat 6[repeat 4[fd 50 lt 90] lt 8]
图8:repeat 18[ repeat 360[ fd 0.6 lt 1] rt 10]
图9:repeat 9[ repeat 6[ fd 30 rt 90]rt 220]
图10:repeat 5[ repeat 18[ fd 3 rt 10] lt 180-360/5]
图11:repeat 5[repeat 2[ repeat 70[fd 0.5 rt 1 ] rt 110 ] rt 360/5]
repeat 5[repeat 2[ repeat 70[fd 1 rt 1 ] rt 110 ] rt 360/5]
图12:repeat 3[ repeat 4[fd 80 rt 90] rt 90 fd 60 lt 90 repeat 4[fd 80 rt 90] rt 90
fd 80 rt 150]
规律分析
题例:用正方形围成一个正方形。(图5)
步骤1:画基本图形 —1个正方形。(图5-1)
? REPEAT 4[FD 50 RT 90]
图5
步骤2:画5个连续的正方形。(图5-2)
? REPEAT 5[REPEAT 4[FD 50 RT 90]FD 50]
图5-1
图5-2
步骤3:画用5个连续的正方形围成一个大正方形。
? REPEAT 4[REPEAT 5[REPEAT 4[FD 50 RT 90]FD 50]RT 90]
动脑筋,画一画:
⑴
⑵
⑶
图一: repeat 3[ repeat 5 [ repeat 540[ fd 0.2 rt 1] rt
180 ] rt 180 repeat 120 [fd 0.2 rt 1] lt 180]
图二:repeat 4[ repeat 5 [ fd 10 repeat 4[ fd 10 lt 90]
fd 10 ]rt 90]
图三:repeat 4 [ repeat 4 [ repeat 4[fd 8 rt 90 fd 8 lt
90] fd 8 rt 90]rt 90]
在操作中学
一种图形采用多种不同的画法或命令,可以锻炼我们深
入思考问题的能力。
1、画“三叶草”,是一组三角形组成的。
方法1:(图6-1)
? DRAW RT 30
? REPEAT 3[FD 120 RT 120 FD 60 RT 120]
方法2:(图6-2)
? DRAW RT 30
? REPEAT 3[REPEAT 3[FD 60 RT 120]RT 120]
动脑筋,画一画:
画“风筝”,是由4个长方形所组成的。(图7)
图6-1
图6-2
? REPEAT 4[FD 140 RT 90 FD 40 RT 90 FD 100 RT 90]
? REPEAT 4[REPEAT 2[FD 100 RT 90 FD 40 RT 90]RT 90]
图7
【知识点】
命 令
格
说
式
空心矩形
STAMPRECT x y
实心矩形
(STAMPRECT x y ”TRUE) 画实心矩形
空心椭圆
STAMPOVAL x y
实心椭圆
(STAMPOVAL x y ”TRUE) 画实心椭圆
明
以海龟原来所在的位置为起始点画矩形
以海龟原来所在的位置为圆心画椭圆
2、怎样画圆?
方法1:(图8-1)
? REPEAT 360[FD 50*PI/180 RT 1]
方法2:(图8-2)
? STAMPOVAL 50 50
3、怎样画矩形?
方法1:(图9)
? REPEAT 2[FD 40 RT 90 FD 100 RT 90]
方法2:(图9)
? STAMPRECT 100 40
图8-1
图8-2
图9
动脑筋,画一画
⑴
⑵
⑶
⑸
⑹
⑺
⑼
⑽
⑾
⑷
⑻
图一:STAMPOVAL 30 80
图二:(STAMPOVAL 80 30 "true)
图三:repeat 3[ repeat 4 [fd 40 rt 120]rt 120]
图五:repeat 4 [ repeat 3[ fd 80 rt 90 fd 20 rt 90] rt 90]
图六:repeat 4[ fd 100 rt 105 repeat 3 [ fd 40 rt 120] lt 15]
图七:repeat 12[ pu fd 20 pd repeat 120 [fd 0.5 rt 1] rt 180 pu
repeat 120 [fd 0.5 lt 1] fd 20 rt 150]
图八:repeat 3 [ repeat 90 [fd 0.5 lt 1] rt 90 repeat 180[fd 0.5 rt 1]
rt 90 repeat 90 [ fd 0.5 lt 1] lt 60 ]
图九:repeat 4 [ repeat 5[ repeat 3[ fd 20 lt 120 ]fd 8] fd 12 rt 90]
图十:rt 210 repeat 3[ repeat 3[ repeat 4 [fd 40 rt 120]rt 120] rt
120 pu fd 40 pd]
图11:lt 45 repeat 4[ repeat 4 [repeat 6 [fd 20 rt 90] rt 180] lt 90 fd
20 rt 180]
第三讲 过程编辑
在文本窗口中直接输入命令画图虽然比较简便,但也有
缺点:在输入了比较复杂的图形之后,不但无法对这些命令
进行保存,也难以进行补充修改。在学会使用Logo系统提供
的 Editor “编辑器” 之后,我们编写各种Logo图形的程序就更
加容易了。
一、使用编辑器
二、带参数的过程
三、海龟的定向定位
一、使用编辑器
1、怎样进入编辑窗口?
⑴、窗口方式:(如图1)
单击工具栏里的“编辑按钮”。
⑵、命令方式:(如图2)
图1
在命令窗口中的“?”Logo提示符后输入 EDIT↙
屏幕上都可弹出编辑窗口。
【说明】:在编辑窗口里
输入程序的方式和 Word
中输入其他文本的方式是
基本一样的。
编写的程序都是以“过程”
的形式出现的。
命令方式
图2
打 开
编辑器
2、什么是过程? Logo过程是命令的集合并冠以一个名字。
过程结构:一个过程是由3个部分组成的。
⑴、引入:由TO引入,再加过程名。
过程名一般都使用易于理解的汉字拼音或英语单词(不能
使用Logo已有的命令),而第一个字符必须是字母,后面可以
是字母或数字,过程名的字符数不得超过8个字符。
⑵、主体:由一系列Logo命令或其他命令组成。
要使整个过程层次非常清楚,每行过程体的开头都加入2个
空格,或按一下〈Tab〉“跳格键”;最基本笔划或图形分行来
编写构成比较复杂的图形。
⑶、结束:用END来表示编辑工作完成。
【知识点】:
编写Logo程序的步骤:编写过程→定义过程→调用过程。
3、过程的编写及定义。
例题分析:编程画一个边长为100的正方形。
编写过程的方法:
TO 过程名
一条或多条命令
END
编写画正方形的过程:
TO ZFX
REPEAT 4[FD 100 RT 90]
END
⑴、在命令窗口中直接输入 ⑵、使用编辑窗口
? TO ZFX
单击工具栏
> REPEAT 4[FD 100 RT 90] 里的
> END
ZFX defined.
?
按“F2”键
4、过程的调用。
所定义的过程ZFX 已经成为Logo的一个新的命令了。在命
令窗口键入ZFX↙,图形窗口中马上就会画出一个正方形。
5、在操作中学
⑴、编写一个过程,画出一所小房屋(如图3)
TO XFW
DRAW
REPEAT 4[FD 100 RT 90]
FD 100 LT 90 FD 30 RT 120
REPEAT 3[FD 160 RT 120]
图3-小房屋(XFW)
HT
END
⑵、编写一个过程,画出一支火箭(如图3)
TO HJ
DRAW FS
REPEAT 2[FD 100 RT 90 FD 50 RT 90]
RT 180 REPEAT 180[FD 25*PI/180 LT 1]
BK 25 REPEAT 2[FD 100 RT 90 FD 20 RT 90]
RT 90 PU BK 70 LT 90 PD
REPEAT 2[FD 100 RT 90 FD 20 RT 90]
PU RT 90 FD 20 LT 90 FD 125 PD
RT 30 REPEAT 3[FD 50 RT 120] LT 30
PU BK 140 PD BK 50
PU FD 90 RT 90 FD 25 LT 90 BK 40 PD
BK 80
PU FD 120 RT 90 FD 25 LT 90 BK 40 PD
BK 50
PU FD 90 LT 90 FD 50 RT 90 PD HT
END
图4-火箭(HJ)
⑶、编写一个过程,画出一枚队徽(如图)。
TO DF
DRAW FS HT
FD 110 RT 162
REPEAT 5[FD 80 LT 72 FD 80 RT 144]
LT 162 BK 110 RT 36
REPEAT 5[FD 42 BK 42 RT 36 FD 110 BK 110 RT 36]
LT 72 FD 42 LT 54 FD 15 RT 70 FD 35 RT 90 FD 15 LT 90
REPEAT 2[FD 10 LT 90 FD 60 LT 90]FD 10
RT 65 FD 40 LT 35 FD 45
LT 155 FD 40 RT 30 FD 30 RT 150 FD 60 LT 25 FD 50
LT 155 FD 50 RT 15 FD 61 RT 144 FD 45 LT 151 FD 70
LT 37 FD 35 LT 58 FD 39 RT 35 FD 10 LT 90 FD 15 RT 90
FD 22 RT 107 FD 31 LT 144 FD 80 RT 72 FD 80
LT 144 FD 50 RT 97 FD 40 LT 84 FD 15 LT 87 FD 45
PU HOME PD
HT
END
6、文件的保存。
⑴、窗口方式:
单击工具栏
里的
(或)
当出现存储文件对话框,可选择“驱动器”、“文件夹”
确定把文件存在什么地方,然后输入文件名。例如ZFX,在单
击“确定”按钮后,计算机会自动加上“.LOG”扩展名,以
ZFX.LOG存储起来。
⑵、命令方式:(使用保存过程命令)
[格式]:SAVE “文件名
[功能]:把当前工作区已经定义过的所有过程按
指定文件名存盘。
二、带参数的过程
1、设计具有共同特点的过程
例题分析:怎样改变图形的大小和形状?
100
80
50
30
图3
?ZFX 100
?ZFX 80
?ZFX 50
?ZFX 30
⑴、首先看画边长为100的正方形过程:
TO ZFX
REPEAT 4[FD 100 RT 90]
END
这个过程只能画边长为100的正方形。如果要想再画其他
尺寸的正方形(如图5),那该怎么办?
注意观察:大小不同的正方形,其区别在于边长的不同。
【知识点】:事实上,Logo系统就是这样编写出带变量的过程。
TO ZFX :B
说明:在定义过程时,过程名后的
REPEAT 4[FD :B RT 90] 变量叫做形式参数,即由冒号“:”
与参数符号组成,之间不能留有空
END
格
⑵、再看画边长为60的正方形过程:
TO ZFX
REPEAT 4[FD 60 RT 90]
END
这个过程只能画边长为60的正方形。如果要
想再画相同尺寸的其他正多边形(如图6),那
又该怎么办?
观察与设计:其区别在于边数和转角的不同。
TO ZFX :N
REPEAT :N[FD 60 RT 360/:N]
END
图6
?DBX 3
?DBX 4
?DBX 5
?DBX 6
? DBX 7
? DBX 8
? DBX 4
【探究】:进而设计改变大小或形状的正多边形过程。
TO DBX :N :B
REPEAT :N[FD :B RT 360/:N]
END
60
60
60
60
60
60
120
2、编写带参数过程的说明
⑴、格式与不带参数的过程基本相同,所不同的只是
这里过程名后面带有参数(称之为“形式参数”,即由冒
号“:”与参数符号组成,之间不能留有空格)。过程名与
参数要留有空格。
⑵、过程体内的每个参数必须在过程首部出现,同时
参数符号要完全一致。
⑶、执行新定义的带参数过程时,过程名后面也要跟
一个实际参数值。实际参数与形式参数不同,它是一个数
或有确定值的表达式,但数或表达式前面不再有冒号。
⑷、在必要时,一个过程可以使用多个参数。在有多个
参数的情况下,各个参数数据之间也必须留一个空格。
3、常用绘图工具过程。
1、正方形 (:B表示边长)
TO ZFX :B
REPEAT 4[FD :B RT 90]
END
2、长方形 (:B表示宽, :A表示长)
TO CFX :A :B
REPEAT 2[FD :A RT 90 FD :B RT 90]
END
3、三角形 (:B表示边长)
TO SJX :B
REPEAT 3[FD :B RT 120]
END
4、正多边形 (:N表示边数, :B表示边长)
TO DBX :N :B
REPEAT :N[FD :B RT 360/:N]
END
5、圆(:R表示半径,在LOGO语言中可以直接用PI来代替π的值)
TO YUAN :R
REPEAT 360[RT 0.5 FD :R*PI/180 RT 0.5]
END
6、左弧 (:N表示弧度, :R表示半径)
TO LHU :N :R
REPEAT :N[FD :R*PI/180 LT 1]
END
7、右弧 (:N表示弧度, :R表示半径)
TO RHU :N :R
REPEAT :N[FD :R*PI/180 RT 1]
END
8、左叶 (:N表示弧度, :R表示半径)
TO LY :N :R
REPEAT 2[LHU :N :R LT 180-:N]
END
9、右叶 (:N表示弧度, :R表示半径)
TO RY :N :R
REPEAT 2[RHU :N :R RT 180-:N]
END
10、平行四边形:
TO PXSBX :B1 :B2 :J
REPEAT 2[FD :B1 RT :J FD :B2 RT 180-:J]
END
11、空心矩形 (:A表示长, :B表示宽)
TO KXJX :A :B
STAMPRECT :A :B
END
12、实心矩形 (:A表示长, :B表示宽)
TO SXJX :A :B
(STAMPRECT :A :B ”TRUE)
END
13、空心椭圆 (:X表示长半轴, ;Y表示短半轴)
TO KXTY :X :Y
STAMPOVAL :X :Y
END
14、实心椭圆 (:X表示长半轴, ;Y表示短半轴)
TO SXTY :X :Y
(STAMPOVAL :X :Y ”TRUE)
END
15、空心正多角形 (:N表示边数, :B表示边长)
TO KXJ :N :B
REPEAT :N[FD :B RT 720/:N FD :B LT 360/:N]
END
16、一般正多角星 (一般正多角星的内角角度为NJ=(N-2K)
*180/N,其中K为整数,K的范围在1<K<N/2,且K与N没有公因
数。)
TO YBJ :N :B :K
REPEAT :N[FD :B RT :K*360/:N]
END
4、过程的嵌套调用
过程调用的最简单方式就是在命令行直接键入过程名。
此外,还可以另外一种过程调用的方式,那就是在一个过程
中允许使用已定义的过程,即过程的嵌套调用。
过程A
过程B
过程C
⑴过程的串式嵌套调用
过程‥
过程A
过程B
过程C
过程‥
⑵过程的并式嵌套调用
说明:过程的嵌套调用还允许使用多层及交叉的方法。
5、在操作中学:编程画出图形(如右下图)。
子过程:(一般都要以带参数的过程方式编写)
TO ZFX :X
REPEAT 4[FD :X RT 90]
END
TO SJX :X
REPEAT 3[FD :X RT 120]
END
TO CFX :A :B
REPEAT 2[FD :A RT 90 FD :B RT
90]
END
小房屋(XFW)
主过程:
动脑筋:如何改变小房屋的大小。
TO XFW
改为带有参数
DRAW FS
ZFX 100
PU RT 90 FD 15 LT 90 PD
CFX 60 30
PU RT 90 FD 60 LT 90 FD 70 PD
REPEAT 4 [ZFX 15 RT 90]
PU FD 30 LT 90 FD 85 RT 120 PD
SJX 120
HT
END
TO XFW :X
DRAW FS
ZFX :X
PU RT 90 FD :X*0.15 LT 90 PD
CFX :X*0.6 :X*0.3
PU RT 90 FD :X*0.6 LT 90 FD :X*0.7 PD
REPEAT 4 [ZFX :X*0.15 RT 90]
PU FD :X*0.3 LT 90 FD :X*0.85 RT 120 PD
SJX :X*1.2
HT
END
【提示】:只要将主过程加上带参数:X,并把步数100改为:X,其
余的按比例类推。(新值=原数/100*:X)
试一试,画一画:把
原来编写的“队徽”过程
改为可变幻大小。
动脑筋,画一画
⑵
⑴
⑶
⑹
⑺
⑿
⑾
⑷
⑸
⑻
⑼
⑽
⒀
⒁
⒂
三、海龟的定向定位
采用“描点法”,让海龟从一点走到下一点,对于不规
则的图形也就不难了,关键是如何指定海龟的位置。在绘图
过程中,有时很难确定海龟的位置和方向,我们可以使用定
位和定向等命令后就方便多了。
1、坐标概述
用横方向和纵方向两个数来表示一个点的方法在数学中
叫 “坐标法”。在Logo画图屏幕,表示左右位置的数叫X坐
标,表示上下位置的数叫Y坐标,海龟起始的位置在屏幕的中
心点(海龟的头朝上)为原点,即(0,0)。
2、基本命令
命 令
全
称
简写
说
明
横移
SETX :X
海龟平移到x位置
纵移
SETY :Y
海龟竖移到y位置
走到
SETXY [:X :Y]
移动海龟到(x y)位置上
定向
SETH :X
海龟顺时针转动到X度处
画点
DOT[:X :Y]
在(x y)处画一个点
水平位置
XCOR
输出海龟X轴的位置
垂直位置
YCOR
输出海龟Y轴的位置
当前位置
GETXY
输出海龟当前的xy值
当前角度
HEADING
输出海龟的指向角度
【指导说明】:
⑴、比较SETX、SETY与FD、BK使用时海龟位置的差异。
⑵、比较SETH与RT、LT使用时海龟角度的差异。
⑶、走到命令SETXY和画点命令DOT格式中的方括号内的数
据只允许使用常数。使用变量或表达式时,要采用以下格式:
SETXY SE :X :Y
DOT SE :X :Y
3、在操作中学
200
⑴、画出三个内嵌套的正方形图形(如右图)。
TO SVQ
DRAW
PU SETXY[-100 -100]PD
REPEAT 4[FD 200 RT 90]
SETXY[-100 0] SETXY[0 100] SETXY[100 0] SETXY[0 -100] SETXY[-100 0]
SETXY[-50 50] RT 90 REPEAT 4[FD 100 RT 90]
END
⑵、画出层叠的二个等腰三角形(如右图)。
TO SJSAB
DRAW
SETX -100 SETXY[0 100] SETXY [100 0] SETX -100
SETXY[0 0]
RT 135 FD 100
SETX 0 PU SETY 0 PD
RT 90 FD 100
SETX 0 PU SETY 0 PD
END
200
100
4、题例分析: 在正五边形中画出内嵌正五角星 (如图7)。
【编程方法1】:
第一步:编写过程L1,执行后观察
两个图形的方位。(如图7-1)
TO L1 :B
LT 18 REPEAT 5[FD :B RT 72]
RT 36 REPEAT 5[FD :B RT 144]
END
图7-1
图7
第二步:修改过程中正五角星的
边长,逐一增长。
逐一增长
TO L1 :B
:B*1.3
:B*1.5
LT 18 REPEAT 5[FD :B RT 72]
RT 36 REPEAT 5[FD :B*1.62 RT 144]
END
说明:先确定正五边形和正五角星的相互间转角,后要反复多次调试更改
正五角星的边长。这种方法是画不规则组合图形的最基本的方法,对于初学者
有助于观察分析、判断思考和综合运用知识的能力,但是比较麻烦!
【编程方法2】:
第一步:编写过程L2,执行后显示出A、
B、C、D、E、F各点坐标的位置。
TO L2 :B
LT 18
REPEAT 5[PR GETXY FD :B RT 72]
END
?DRAW L2 100↙
0
0
(A点坐标)
-31 95 (E点坐标)
50
154 (D点坐标)
131 95 (C点坐标)
100 0
(B点坐标)
第二步:再重新编写过程L2A或L2B。
改为带有参数
TO L2A
LT 18 REPEAT 5[FD 100 RT 72]
SETXY[50 154]
SETXY[100 0]
SETXY[-31 95]
SETXY[131 95]
SETXY[0 0]
END
TO L2B
LT 18
SETXY
SETXY
SETXY
SETXY
SETXY
END
:B
REPEAT 5[FD :B RT 72]
SE 0.5*:B 1.54*:B
SE :B 0
SE -0.31*:B 0.95*:B
SE 1.31*:B 0.95*:B
[0 0]
说明:使用相关海龟定方位和查方位命令为我们绘制较复
杂的图形提供了极大的方便。
【编程方法3】:
第一步:根据执行L2,找出在
同坐标同线上两点间距离。
?DRAW L2
0
0
-31 95
50
154
131 95
100 0
第二步:确定正五边形与内嵌
正五角星的边长之间的 关系。
100↙
(A点坐标)
(E点坐标)
(D点坐标)
(C点坐标)
(B点坐标)
根据上面数据,E、C相
距(31+131=162)得出:内
嵌正五角星的边长为正五角
星的边长的1.62倍。
第三步:编写一个可变幻的图形。
TO L3 :B
LT 18
REPEAT 5[FD :B RT 72]
RT 36
REPEAT 5[FD :B*1.62 RT 144]
END
? L3 30
? L3 50
? L3 80
? L3 150
动脑筋,画一画
[0,60]
[0,0]
⑴
[60,60]
[150,60]
⑵
⑶
⑷
⑹
120
⑺
[0,30]
⑻
⑼
⑸
⑽
8
10
30°
130
150
10
120
⑿
5
⒀
⒁
用“一笔画”画出图形⑿、⒀、⒁、⒂
⑾
⒂