[TDC]
pen .fd() .rt() .c() .up() .o(,) .e(,) .r(,,) .picL(,”-1/1310700.jpg”) .text(,,) .moveTo(,) wait(); pause(); .lt() .size() .down() .oo(,).speed() .show() .lineTo(,) .ctime() .sound()
double
cinWin();cout<<
cin>>
{ }
= else if() int GoC命令书写说明: (a)直接指挥笔动作的命令通常以“pen.”(可简写为“p.”)开头。 (b)除特殊情形外,命令名称中的字母一般用小写。 (c)每行命令的末尾要加分号“;”,表示该行命令的结束。 (d)每行命令输入后,要按回车键发送。 🔆指令学习 空心圆命令:p.o(半径,颜色) GOC基础指令 - 图2
实心圆命令:p.oo(半径,颜色) GOC基础指令 - 图3
参数说明:r(圆的半径),c(圆的颜色)
GOC基础指令 - 图4
半径是指圆的中心到圆周的直线段长度,通常用字母r表示(radius英 [ˈreɪdiəs] 半径长度)。
从圆的中心到圆周上任意一点的距离都是相等的。
课堂练习 绘制同心圆 GOC基础指令 - 图5
椰小程要画红绿黄3个不同半径的同心圆,要求红色(1号)的是最大半径圆,绿色(3号)的是第2大半径的圆,黄色(5号)的是最小半径的圆。但输入是的的3个数可能并没有从大到小。
比如输入的3个半径分别是50,30,40:
GOC基础指令 - 图6
这3个圆一定要按照正确的次序才能画出正确的图形。比如你最后画最大的圆形,就只能看见一个红色的大圆。 请你帮小C编程解决这个问题。
int main() { pen.oo(50,1); pen.oo(40,3); pen.oo(30,13); return 0; } 画圆环 题目描述
输入2个不同的正整数a和b,其中较大的数作为外半径,较小的作为内半径,画一个红色(1号色)的圆环。
输入格式
一行2个不同的正整数a,b:范围在[10..100]。
输入样例 70 40 ,同学们可以试试其它数值 GOC基础指令 - 图7
总结 一、GoC是什么?
GoC是Go to C++!
GoC采用编程画图形的方法,快速入门C++!
WebGoC是学习 GoC的工具,它通过编程区绘图,绘图区显示图形的方法,形象直观的让学生了解C语言的三大基本结构:顺序、循环和选择。
二、画圆命令o/oo
GOC基础指令 - 图8
📖 第2课:无人驾驶汽车 —-前进、后退与转弯
fd、bk、rt、lt命令学习
分析行驶路线 GOC基础指令 - 图9
椰小程和小伙伴的家及科技馆的位置如图路线所示,要接齐所有人,可以按下步骤行驶:
(1)第一步(从起点到椰小程家):前进100。 (2)第二步(从椰小程家到同学A家):右转90度,__. (3)第三步(从同学A家到同学B家): __ ,前进200。 (4)第四步(从同学B家到科技馆):后退50。 用“命令”指挥无人驾驶汽车 只要我们输入正确的命令,就能指挥无人驾驶汽车。
进入教学网站第2课的“开汽车—指挥汽车”页面,单击“演示”按钮行程序,输入正确的命令指挥无人驾驶汽车。
🔆指令学习 前进命令:p.fd(长度); 作用:让画笔按指定长度前进。 示例:“p.fd(100);”是前进100。
【视频:fd() 指令 :forword 前进】
1.0 倍 后退命令:p.bk(长度); 作用:让画笔按指定长度后退。 示例:“p.bk(50);”是后退50。
【视频:bk() 指令 :back 后退】
1.0 倍 右转命令:p.rt(角度); 作用:让画笔按指定的角度右转改变方向。 示例:“p.rt(90);”是右转90度。
【视频: rt() 指令 :right 右转】
1.0 倍 左转命令:p.lt(角度); 作用:让画笔按指定的角度左转改变方向。 示例:“p.lt(90);”是左转90度。
【视频:lt() 指令 :left 左转】
1.0 倍 GOC基础指令 - 图10
汽车在“行驶”中会画出直线,全靠GoC中有一支神奇的画笔✏️.在GoC中按命令要求画出各种各样的图案来。
int main(){ p.fd(100); p.rt(90); p.fd(400); p.lt(90); p.fd(200); p.bk(50); } 课堂练习 领奖台 题目描述
小C同学在学校GoC编程比赛中获得了一等奖,他希望在领奖会上能站在一个漂亮的领奖台上。设计的领奖台如下图,请你帮忙使用GoC编程绘制。
GOC基础指令 - 图11
说明: 上图中红色数字是标明尺寸的,不需要画出。 总宽180,上面3段每个宽60。 第1台阶高30,第2台阶高20。
// 自行编写实现 尺(che) 题目描述
请画出下面形状的尺。
GOC基础指令 - 图12
说明:横的每段长度是10; 高度有2种:高的是10,矮的是5。
// 自行编写实现 轮廓(扩展练习) 题目描述
学校准备在颁奖会把这次比赛的前10名的成绩用图形表示出来。小C记得去年是用一个直方图的形式表示的,就是以输入的次序把每个成绩的分数作为高,画一个宽度为20的矩形。 假如输入的10个成绩是:100 90 70 60 80 95 120 105 95 71 ,绘制的图形如下。
GOC基础指令 - 图13
这个图形是做在一个展板上的,经过一年的风吹雨淋,展板上的线条都褪色了,只能看出展板的轮廓。请你使用GoC编程,画出展板的轮廓。具体形状参见输入输出样例。
输入格式 一行10个空格分隔开的正整数:分别表示10名同学的比赛成绩。
输出格式 相应的展板轮廓。
输入/输出例子1
输入:
100 90 70 60 80 95 120 105 95 71
输出:
GOC基础指令 - 图14
输入/输出例子2
输入:
50 30 20 90 80 100 60 70 110 120
输出:
GOC基础指令 - 图15
// 自行编写实现 总结 GoC的四个基本命令前进fd、后退bk、右转rt、左转lt 。
GOC基础指令 - 图16
📖 第3课:氚气灯管 —-设置颜色和粗细
c、size为笔选颜色和粗细命令学习
进入科技馆,椰小程随即被一排色彩斑斓的氚(chuān)气灯管深深吸引了。氚气灯管不需要通电和补充能量就能自动发光二十年以上,在深水、矿井等各种恶劣的环境下都能正常发光。
GOC基础指令 - 图17
怎样用GoC中的画笔画出图3-1中黄色的“氚气灯管”呢?
经过认真观察和思考,椰小程发现如果能设置画笔的颜色和粗细,再使用p.fd()命令就能画出以上的“氚气灯管”了。
一、设置氚气灯管的颜色 五颜六色的氚气灯管让椰小程流连忘返,如何设置这些漂亮的颜色呢?
int main(){ p.fd(360); } 本程序画出了一根蓝色的灯管,如果要画黄色的氚气灯管,怎么改变画笔的颜色呢?
int main(){ // 设置画笔颜色为 5 号黄色 p.c(5); p.fd(360); } 为了方便指挥画笔,可以将多个命令按一定的顺序和格式编写成一个程序,在需要的时候运行它。
一个完整的GoC程序一般包括以下几部分:
注释部分:以“//”开头,是为方便人们阅读程序而添加的说明,不是程序必需的内容,计算机也不会执行。 主函数“int main()”:每个程序必须有一个主函数。 主函数体:跟在主函数名后,用一对大括号{ }括起来,里面按一定的顺序和格式编写各种命令。在程序中书写的每一行命令,也可称为语句。 返回语句“return 0;”:是主函数体的最后一个语句,表示主函数到此结束。 🔆指令学习 设置颜色命令:p.c(颜色编号) 作用:按指定的颜色编号设置画笔颜色。 示例:“p.c(1);”将画笔的颜色设置为红色(1号)。 GoC中16种颜色对应的编号如下: GOC基础指令 - 图18
【视频:c() 指令 :color 前进】
1.0 倍 连发命令:p.命令1.命令2.·命令n 作用:把多个画笔命令连接起来书写,按从左到右的顺序执行各个命令。在书写连发命令时,只需要一个p.开头,随后的命令均省略p.。
示例:p.c(5).bk(46):先设置5号色,然后后退 46步以该颜色画线。
设置氚气灯管的粗细 椰小程很快就画出了一根彩色氚气灯管,但是这根灯管太细了,用什么命可以让它变粗呢?
int main(){ p.size(30); p.c(5); p.fd(360); p.hide(); return 0; } 课堂练习 彩色旗帜 题目描述
请编写程序,根据图形中红色数字指定的长度,画出下面图形。
GOC基础指令 - 图19
🔆指令学习 设置画笔粗细命令:p.size(数值); 作用:按指定的数值设置画笔的粗细,数值越大,画出的线条就越粗。 示例:“p.size(10).fd(100):”能画出粗为10 长度为100的线条。
【视频:size() 指令: size 粗细】
1.0 倍 隐藏画笔命令:p.hide(); 作用:让画笔隐身,以免遮挡所画的图形。“hide()”的括号里不用写参数。 示例:“p.c(6).size(5).fd(72).hide();”先画出一条6号色、粗为5、长为72的线,然后隐藏画笔。
尝试把“p.size(30);”命令中“30”为不同的数并运行程序,观察图形的变化。
把命令”p.hide()”放在”p.fd(360)”之前,再执行程序,观察执行效果有什么不同
课堂练习 小丑的帽子 题目描述
通过控制笔的粗细、交替的颜色变化,我们还可以绘制一顶小丑的帽子。 GOC基础指令 - 图20
//通过控制笔的粗细、交替的颜色变化,我们还可以绘制一顶小丑的帽子。
int main(){
p.text(“小丑的帽子”,0,30,0,0,300);//显示标题,小丑的帽子
p.speed(1.5);//设置速度1.5较慢
p.c(1).size(300).fd(23);
p.c(12).size(270).fd(23);
p.c(11).size(240).fd(23);
p.c(13).size(210).fd(23);
p.c(12).size(180).fd(23);
p.c(14).size(150).fd(23);
p.c(4).size(120).fd(23);
p.c(2).size(90).fd(28);
p.c(12).size(80).fd(3);
p.hide();//隐藏笔头
return 0;
}
总结
本节了解了编程的工具:WebGoC,学习了设置颜色命令c,设置画笔粗细命令size,矩形与实心矩形r,rr。
一、设置笔色命令pen.c(color)
颜色代码:0-15
GOC基础指令 - 图21
画笔默认颜色是蓝色(颜色代码:2)
可使用pen.c(颜色代码)的方式设置想要的颜色。
设置颜色后,笔将以所设置的颜色绘图,直到下一次笔色命令改变颜色。
二、设置画笔宽度:pen.size(width)
执行设置画笔宽度命令之后,画笔将以此宽度画图。
笔宽和线条示例:
GOC基础指令 - 图22
三、命令中涉及的英文单词:
c—color 英[ˈkʌlə(r)] 中文释义:颜色;彩色。
size英[saɪz] 中文释义:大小;尺码。
- r—rectangle 英[ˈrektæŋɡl] 中文释义:长方形;矩形。
- w—width英[wɪdθ] 中文释义:宽度;广度。
- h—height英[haɪt] 中文释义:高;高度;身高。 📖 第4课 交通安全警示系统 —-画矩形与抬笔、落笔
r、rr、up、down命令学习
在智能交通展厅中,椰小程看见一套新型示系统”,它由“语音提示桩”和“人脸识别显示屏”等多个部分组成,有LED提示、语音提醒、拍照、人脸识别等功能.能及时警示行人,避免交通违规。
GOC基础指令 - 图23
画语音提示桩 // 程序 4-1 int main() { p.rr(100,20,13); p.fd(160); p.rr(80,300,13); p.rr(60,180,0); return 0; } 🔆指令学习 实心矩形命令:p.rr(宽,高,颜色) 作用:以笔的位置为中心,按给定的宽、高和颜色画一个实心矩形。若不写颜色参数,则以画笔当前颜色画矩形。 示例:“p.rr(100,200.1):”将画一个宽100、高200的红色实心矩形。
空心矩形命令:p.r(宽,高,颜色); 作用:以笔的位置为中心,按给定的宽、高和颜色画一个空心矩形。 示例:“p.r(80,50,3);”将画一个宽80、高50的绿色空心矩形。
画“安全警示线” “红灯停、绿灯行”、人们在等待交通指示灯切换的时候,应该站在安全区域内等待。请参考图4-1编程效果图画出“安全警示线”。
// 程序4-2 int main() { p.c(13).size(8); p.fd(100); p.up().fd(50).down(); p.fd(100); return 0; } 🔆指令学习 抬笔命令:p.up(); 作用:抬笔使画笔移动时不画出直线。本命令不需要参数。抬笔只影响fd、bk命令,对画矩形、圆、椭圆等命令没有影响。 示例:“p.rt(90).fd(20).up().fd(80);”将画出一 ✏️
落笔命令:p.down(); 作用:落下画笔以便移动时画出直线。本命令不需要参数。在GoC中,画笔初始状态是落笔状态。 示例:“p.rt(90).fd(20).up().fd(10).down().fd(80);”将画出— — — ✏️
课堂练习 场记板 题目描述 椰小程同学和家人去影视城游玩,刚好看到一个剧组在拍电影,其中有一位工作人员在负责打板,同时大喊:”Action”,小C觉得很有趣,才知道原来那块板叫场记板,请你帮忙使用GoC编程绘制出来。
GOC基础指令 - 图24
(注意:两块板之间的夹角为45度)
乐谱 题目描述
输入n个音符数值,画n个音符。每个音符用宽度是10,颜色由输入的数值确定,高度是颜色号的30倍。
例如输入:3 2 1 2 画出下面图形
GOC基础指令 - 图25
说明:4个矩形宽度10,颜色分别是3、2、1、2,高度分别是90、60、30、60。
相邻矩形的中心在一条直线上,距离15。
总结 一、矩形命令:pen.r(w,h,c)/实心矩形命令:pen.rr(w,h,c)
接收画矩形命令之后,将以画笔位置为中心,画矩形。
参数: width 宽度; height 高度; color 颜色
示例:pen.r(200,300,7);(画宽度200,高度300,颜色代码为7的矩形)
GOC基础指令 - 图26
示例:pen.rr(300,100,10);(画宽度300,高度100,颜色代码为10的实心矩形)
GOC基础指令 - 图27
提示:画矩形命令也可以写作: pen.r(w,h) 或 pen.rr(w,h)
当矩形命令的颜色参数缺少时,以当前笔色画矩形。
二、抬笔命令up()
GOC基础指令 - 图28
说明:up()是无参数命令,括号中没有参数;执行抬笔命令up(),画笔将抬起,移动时不会画出直线。
使用up()命令,来移动画笔到合适的位置画图。
三、落笔命令down()
GOC基础指令 - 图29
说明:down()是无参数命令,括号中没有参数;画笔在抬笔状态下,执行落笔命令down(),画笔将再次放下,移动时重新可以画出直线。
down()命令,用来解除画笔抬笔状态,重新可以画出直线。
注意:
1、Up()与down()命令配合,可以移动画笔到合适的位置画图。
2、画笔在抬笔状态下,不可以画直线,但不影响其他图形mlr/rr/o/oo等命令的执行。
📖 第5课 无叶风扇 ——画实心与空心椭圆
e、ee命令学习
正在用心体验科技产品的椰小程,忽然感受到一阵阵清凉之风。原来是科技馆安装了很多无叶风扇,这些风扇能360度旋转吹风,而且能智能感应室温调节风力。
GOC基础指令 - 图30
画出出风框 // 程序 5-2 int main() { p.size(30); p.e(80,160,10); p.up().bk(220); p.rr(100,150,10); p.ee(10,10,1); return 0; } 🔆指令学习 实心椭圆命令:p.ee(横半径,纵半径,颜色): 作用:以笔的位置为中心,按指定的横半径、纵半径和颜色绘制一个实心椭圆。 示例:“p.ee(80,50,1);”将画出一个横半径80、纵半径50的红色实心椭圆。
空心椭圆命令:p.e(横半径,纵半径,颜色); 作用:以笔的位置为中心,按指定的横半径、纵半径和颜色绘制一个空心椭圆。 示例:“p.e(120,70.1);”将画出一个横半径120、纵半径70的红色空心椭圆。
程序中 p.ee(10,10,1); 将横半径、纵半径 设置为相同的数值来绘制圆形,我们也可以直接使用 o / oo 来实现。
GOC基础指令 - 图31
总结 📖 第6课 无人机 —-计算旋转角
角度大小学习
在航空展厅中,椰小程看到多种“萌萌哒”无人机,有的像“章鱼”,有的像“小蜜蜂”,还有的像微缩型的直升机。无人机不仅能高空摄影,还能用于农业植保、物流配送、电力巡检、环境监测和抢险救援等方面。
GOC基础指令 - 图32
旋转角度分析 GOC基础指令 - 图33
// 程序 6-3 int main(){ p.hide(); p.rt(45); p.fd(100).e(30,30,1).ee(20,3).bk(100); p.rt(90); p.fd(100).e(30,30,1).ee(20,3).bk(100); p.rt(90); p.fd(100).e(30,30,1).ee(20,3).bk(100); p.rt(90); p.fd(100).e(30,30,1).ee(20,3).bk(100); p.rt(90); p.rr(30,50).ee(10,40,1); return 0; } 🔆指令学习 代码复制方法: 使用快捷键Ctrl+C(复制)和Ctrl+V(粘贴),实现对相同代码的复制。 示例:在编辑程序6-3时 可以输入以下两行语句 p.fd(100).e(30,30,1).ee(20,3).bk(100); p.rt(90); 然后再复制1次并先后粘贴3次,完成画4根机轴的代码。
实心椭圆命令的特殊形式:p.ee(横半径,纵半径); 作用:以画笔的当前颜色画椭圆。空心椭圆命令也有类似的特殊形式。 示例:“ee(20,3)”表示以画笔的当前颜色画横半径20、纵半径3的椭圆。
课堂练习 炊烟 题目描述
编程,画出下面图形,椭圆中心距离50,长半径分别是20、40、60、80、100,短半径是长半径一半。颜色号分别是1、2、3、4、5。
GOC基础指令 - 图34
菱形 题目描述
菱形是四条边相等的四边形,但角度不确定。请编程画出如下图的边长为100,内角分别是45度和135度的菱形。
GOC基础指令 - 图35
说明: 上图中红色数字是标明尺寸的,不需要画出。
总结 一、角度
角:具有公共端点的两条射线组成的图形。这个公共端点叫做角的顶点(B),这两条射线(AB/BC)叫做角的两条边。
GOC基础指令 - 图36
锐角:指大于0°而小于90°(直角)的角。
直角:等于90°的角。
《几何原本》中的定义:当一条直线和另一条横的直线交成的邻角彼此相等时,这些角的每一个被叫做直角,而且称这一条直线垂直于另一条直线。
钝角:大于直角(90°)小于平角(180°)的角。
平角:等于180°的角。
平角是一条射线绕它的端点旋转,当始边和终边在同一条直线上,方向相反时,所构成的角。
周角:是指一条射线绕着它的端点旋转一周所形成的角(360°)。
GOC基础指令 - 图37
二、圆周360°与量角器:
古代巴比伦人定义一周角分为360等份,每份定义为1度(1°)
GOC基础指令 - 图38
量角器又称“半圆仪”。将半圆形硬塑料板分成180度,用来测量角度或画出所需的角。
量角器有内圈和外圈两层刻度,根据实际情况选择合适的刻度。
GOC基础指令 - 图39
量角器使用方法:1:定点;2:对边;3:读值。
📖 第七课 智能机器人 —-调入与显示图片
picL、pic、picU命令学习
来到机器人展厅,椰小程发现里面各式各样的机器人伙伴可聪明啦,迎宾机器人在门口热情迎客,送餐机器人正在向客人赠送饮料,快递机器人正在模仿快递传送,还有机器人在热烈跳舞呢,令人惊叹不已!
GOC基础指令 - 图40
进入机器人展厅 //程序7-1 int main() { p.picL(1,”venue.png”); //调入机器人展厅图片“venue.png”并编为1号 p.pic(1); //显示1号图片(机器人展厅) return 0; } 🔆指令学习 调入图片命令:o.picL(图片编号,图片文件名); 作用:调入图片文件名对应的图片并编号。图片文牛名要用双引号括住。 示例:“p.picL(6,”park.png”);”调入图片“park.png”编为6号。
显示图片命令:p.pic(图片编号); 作用:显示指定编号的图片。 示例:“p.pic(3);”显示3号图片。
GOC基础指令 - 图41
使用选择面板,载入图片:
GOC基础指令 - 图42
让快递机器人转弯 GOC基础指令 - 图43
//程序7-4
int main()
{
p.picL(1,”road.png”);
p.picL(2,”robot3.png”);//调入快递机器人图片“robot3.png”并编为2号
p.pic(1).up();
p.picU(1); //设定图片按向上显示
//======在A,B,C三个位置显示机器人===
p.lt(90).fd(150).rt(90); //把画笔移到A点
p.pic(2); //显示2号图片(机器人)
p.fd(250).rt(90).fd(150);//把画笔移到B点
p.pic(2);
p.fd(200).rt(90).fd(250);//把画笔移到C点
p.pic(2);
return 0;
}
🔆指令学习
设置图片方向属性命令:p.picU(1或0);
作用:设定p.pic()执行时是否按画笔的方向显示图片。当参数为1时或没使用p.picU()命令时,图片按原来的方向显示:当参数为0时,图片按当前画笔的方向旋转后显示。
示例1:“p.picL(1.”arrow.png”).rt(45).picU(0).pic(1);”图片按笔方向右转45度后显示。
示例2:“p.picL(1,”arrow.png”).rt(45).picU(1).pic(1);”不受画笔方向影响,图片按原来的方向显示。
GOC基础指令 - 图44
总结 一、 命令学习:picU(0)/picU(1)随笔旋转命令
功能:
执行pen.picU(1),设置图片(图形)的方向始终向上;
执行pen.picU(0),设置的图片(图形)方向不是一直向上,而是按笔的方向显示。
(U是up的意思)
说明:默认图片方向是始终朝上的。
GOC基础指令 - 图45
二、旋转图形
以画笔位置为旋转点,旋转显示图形。
技能:旋转的三要素(旋转中心点、方向、角度)。
方法:空间观念和想象力。
图示1:
GOC基础指令 - 图46
三、中心发散图形
中心发散图形循环体:从中心出发,返回到中心
技能:picU,for循环。
方法:空间观念和想象力。
图示2:
GOC基础指令 - 图47
四、线型循环图形
技能:线性循环体分析(循环起始角度和结束角度一致)。
方法:空间观念和想象力。
图示3:
GOC基础指令 - 图48
五、中心旋转与线型循环结合
技能:循环路线形成闭合图形(中心点与循环路线的结构)。
方法:空间观念和想象力。
图示4:
GOC基础指令 - 图49
图示5:
GOC基础指令 - 图50
📖 第 8 课 全息投影 —-输入与存放数据
变量和键盘输入语句
椰小程正沿着线路参观,忽然一头恐龙呼啸着扑面而来,仿佛已置身于神秘的恐龙世界,原来他进入了配备全息投影的动就可在观众感影厅。
全息投影技术是一种不需要配戴3D眼镜,面前显示立体虚拟场景的技术。
GOC基础指令 - 图51
//程序8-1 int main() { p.hide(); p.picL(1,”sl.jpg”).pic(1); //调入并显示背景图片 p.picL(2,”kl.png”); //调入恐龙图片 p.pic(2); // p.pic(2, 宽度,高度) return 0; } 改数据让恐龙变身 恐龙太大,走出屏幕边界了,如何修改程序将其缩小呢?
🔆指令学习 显示图片命令:p.pic(图片编号,宽,高); 作用:以画笔的位置为中心,按指定的宽和高显示编号对应的图片。如果只按原来的大小显示图片,可以不写宽和高两个参数,这就是该命令的特殊形式p.pic(图片编号);”。
示例:“p.pic(2,200,500);”按照宽200、高 500 显示 2号图片。
输入数据让恐龙变身 GOC基础指令 - 图52
//程序8-3 int main() { p.hide(); p.picL(1,”sl.jpg”).pic(1); p.picL(2,”kl.png”); //调入恐龙图片 int w; //定义变量w cin>>w; //输入图片的宽度并存入变量w p.pic(2,w,500); //按照宽w、高500显示恐龙图片 return 0; } 🔆指令学习 定义整数变量:int变量名; 作用:定义一个整数变量,用来存放一个整数。每个变量都要有一个变量名,变量名只能由字母、数字和下划线组成,且必须以字母开头。 示例:“inttz8:”定义了一个可存放整数的变量tz8。
输入语句:cin>>变量名: 作用:接受从输入窗口输入的数据 并存放到指定的变量中。 示例:“cin>>se:”接受输入的数据,并存放到变量Sg。
输入图片的宽度和高度 GOC基础指令 - 图53
🔆指令学习 定义多个整数变量:int变量名;,变量名2,…,变量名n; 作用:同时定义多个整数变量。变量名之间用逗号隔开。 示例:“intw.h:”定义两个整数变量w和h,变量名之间 作用等同于: int w; int h;
输入多个变量的值:cin>>变量名>>变量名>>…>>变量名n; 作用:输入多个变量的值。每个变量名前都要加“>>”号。 示例:“cin>>w>>h;”从键盘输入两整数,分别存放在变量w和h中。在输入数据时,第1个值与第2个值之用空格隔开。
📖 第 9 课 自动感应—-用if语句判断 if大小判断命令学习
经过自动门进入游客休息室,各种家居科技产品立刻映入椰小程的眼帘,令人大开眼界,有感温水杯、自动窗帘……这些产品的共同特点,都是使用了一类叫传感器的部件接收外界信息,以实现产品的“自动”功能。
自动感应门 GOC基础指令 - 图54
//程序9-1 int main() { p.picL(1,”open.png”); //调入开门图片 p.picL(2,”close.png”); //调入关门图片 p.pic(2); //显示关门图片 int n; //定义变量n,用于存放距离 cin>>n; if(n<300) p.pic(1); //如果距离n小于300就显示开门图片 return 0; } 🔆指令学习 判断语句:if(条件表达式)语句; 作用:当条件表达式的值为True(即“真”)时执行后面的语句,否则不执行后面的语句。当if后面需要执行多个画图命令时,可以写成连发命令,也可以用一对大括号“”将多个单独写的命令括起来。
示例:“if(il<150)p.pic(1):”表示如果jl小于150就显示1号图片。
关系表达式 作用:由关系运算符连接起来的运算式子叫关系表达式,其结果为True(“真”)或False(“假”)。关系运算包括“>”(大于)、“<”(小于)、“>=”(大于或等于)、“<=”(小于或等于)、“==”(等于)、“!=”(不等于)共6种。
示例:t=200时,“t<280”的运算结果为True;x=80时,“x+10>100”的运算结果为False。
智能感温水杯 在科技馆的休息室中,椰小程发现一些奇妙的智能感温水杯:只要水温不超过55摄氏度,杯子盖上的标志就是绿色,超过55摄氏度就是红色的。
GOC基础指令 - 图55
智慧宝箱 椰小程在展馆发现了一个宝箱,现场工作人员告诉他,这个智慧宝箱的密码是当前的月份数。请你跟他齐心合力完善程序9-3,以便能输入正确的密码打开宝箱。
GOC基础指令 - 图56
第10 课 高铁列车—-用for语句实现重复 for语句初步学习
来到科技馆的现代交通展区,椰小程看到里面陈列着各式各样的交通工具,特别是其中长长的高铁列车模型尤其引人注目。高铁列车的奔跑时速可达300公里以上,相比传统火车更快、更安全、更舒适。
GOC基础指令 - 图57
显示多节车厢 GOC基础指令 - 图58
//程序10-4
int main()
{
p.up().rt(90).bk(300);
p.picL(1,”ct.png”).picL(2,”cx.png”);
p.pic(1);
for(int i=0;i<6;i++) //重复6次
p.fd(100).pic(2); //显示1节车厢
return 0;
}
🔆指令学习
重复语句:
for(int 循环变量=0:循环变量<次数:循环变量++)
循环体;
作用:按指定的次数重复执行循环体中的语句。示例:
p.rt(90); for(int i=0;i<5;i++) p.e(30,30).fd(60); 运行结果是:
GOC基础指令 - 图59
总结 一、for语句格式: GOC基础指令 - 图60
说明:for语句可以实现重复动作的多次执行:
GOC基础指令 - 图61
二、循环体: 有一类图形,它是由一组相同的动作组合,重复执行多次完成的。
这组相同的动作组合,在for循环里称为循环体。
循环体的划分,需要细致的观察。
三、for语句的快捷输入: GOC基础指令 - 图62
直接点击命令面板中的命令,相应的命令代码将快捷显示在光标停留处。
📖 第 11 课 环形空间站—-画正多边形 正多边形的角度学习
在科技馆的航天展区,椰小程发现了一种造型独特的环形空间站模型,欲一探奥秘。环形空间站是一种在近地轨道长时间运行、可供多名航天员巡访、长期工作和生活的载人航天器。
GOC基础指令 - 图63
空间站的形状 为准确分析,椰小程找来科技馆的专业人士对环形空间站的模型进行扫描绘图,发现它的内圈是一个正十二边形。
正多边形的所有边、所有角都相等。 边数为n的正多边形,就叫作正n边形。 画正方形 我们知道了空间站内圈是一个正十二边形,怎么把它画出来呢?我们先从常见的正方形开始吧。
GOC基础指令 - 图64
//创意园 int main() { p.c(1); for(int i=0; i<4; i++){ p.fd(100).rt(90); } return 0; } 画正三角形 GOC基础指令 - 图65
int main() { p.c(1); for(int i=0; i<3; i++){ p.fd(100).rt(120); } return 0; } 画正多边形 GOC基础指令 - 图66
int main() { int n; cin >> n ; for(int i=0; i<n ; i++ ){ p.fd(100).rt(360.0 / n); } return 0; } GOC基础指令 - 图67
🔆指令学习 算术表达式 用加、减、乘、除等运算符将数或变量连接起来进行计算的式子,叫算术表达式。表达式中的乘号要用“*”表示,除号要用“/”表示。
示例:35+7,2013,2.6k,x/5等都是算术表达式。
画正n边形时画笔转角的计算: 用“360.0/n”计算转角,以便能保留小数。如果写成“360/n”,则只取结果的整数商(如360/7的值为51)。
总结 一、正多边形
正多边形是指二维平面内各边相等,各角也相等的多边形,也叫正多角形。
GOC基础指令 - 图68
GOC基础指令 - 图69
画笔完成一个正多边形的绘制,一共旋转360°
根据正多边形的性质,我们可以计算出正多边形的外角:
正 N 边形的转角: 360.0 / N
程序示例:
for(int i = 0; i < n; i++) pen.fd(100).rt(360.0/n); 说明:表达式360.0/n是精确算法,表达式360/n是整除运算。
例:C语言的表达式中:360/7的结果为51;360.0/7的结果为51.42。
注意:画笔既可以顺时针方向旋转,完成正多边形的绘制;也可以逆时针方向旋转,完成绘制。
📖 第 12 课 抽取纪念品—-巧用随机函数 随机函数初步学习
椰小程参观完科技馆,编程画出了很多漂亮的科技产品。为鼓励椰小程爱科学、学科学,馆长给了椰小程一个抽奖机会,让他在各种科技产品的模型中,抽取其中一个作为纪念品。 GOC基础指令 - 图70
神奇的抽号机 如何随机抽取一种纪念品呢?我们可以设计一个抽号机来帮助椰小程。运行抽号程序,屏幕显示的数字就是抽中的纪念品编号。
GOC基础指令 - 图71
//程序12-1
int main()
{
p.picL(1,”num.png”);
p.pic(1);
int m;
m=rand(1,8); //随机产生1~8中的一个整数,存入变量m中。
p.text(m,1,100); //屏幕显示m的值
return 0;
}
🔆指令学习
随机函数:rand(整数1,整数2);
作用:在整数1到整数2之间随机取一个整数。示例:“rand(1.8);”能在1至8之间随机生成一个整数。
显示文字命令:p.text(文字内容,颜色,大小); 作用:按指定的颜色和大小在当前画笔的位置显示文字内容。在实际书写该命令时,因为文字内容是一个字符串,因此要用双引号。 示例:“p.text(“您好!”,1,50);”将在屏幕显示大小为50的红色文字“您好!”。
赋值语句:变量名=表达式; 作用:计算“=”右边表达式的值并存放到左边的变量中。其中“=”称为赋值号。 示例:“x3=rand(10,60);”在10至60之间随机取-个整数,存放到变量x3中。
跳动的数字 为了烘托抽奖的紧张气氛,我们可以在同一位置连续显示随机产生的数字,从而呈现数字“跳动”的效果。
GOC基础指令 - 图72
🔆指令学习 等待命令:wait(秒数); 作用:让程序等待指定的秒数,再执行下一个语句。示例:“wait(0.2);”执行时会等待0.2秒。
复合语句:{多个语句} 作用:用“{ }”把多个语句括起来,这部分就叫复合语句。 for语句的循环体若多于一个语句,就必须用{ }括起来,以组成一个复合语句。 示例: GOC基础指令 - 图73
幸运大转盘 参观科技馆之行将要结束,馆长再奖励椰小程拨动一次幸运大转盘,以奖励他一件小礼品,看看椰小程能获得什么小礼品。
GOC基础指令 - 图74
//程序12-3
int main()
{
p.picL(1,”zhuangpan.png”); //转盘图片
p.picL(2,”zhizhen.png”); //指针图片
p.hide().speed(10); //让转盘快速转动
int x;
x=rand(10,20);//控制转盘转10~20次
for(int i=0; i<x; i++) // 动感旋转转盘
{
p.rt(36); //每次转动36度
p.picU(0).pic(1);
p.picU(1).pic(2);
wait(0.04);
}
return 0;
}
第13 课 for语句里的循环变量(扩展)
数字队列、text()、wait()
🔆指令学习 总结 一、画写文字命令:text(s,c)
格式1:text(s,c) s表示的是输出的内容,c是颜色代码。
以c的代码颜色画写s的文字内容。
格式2:text(s)
当颜色参数缺省时,以当前笔色画写文字。
text还可以实现更丰富的画写文字功能,请参看文件中的帮助一栏text内容。
注:text【tekst】中文释义:文本
二、for循环的运行
for循环语句示例:
GOC基础指令 - 图75
注:for循环的三个语句功能:
i=0: 循环变量i开始为0 i<3: 循环变量要小于3 i++: 循环变量每次加1 循环变量i的值分别为0,1,2
循环运行流程:
GOC基础指令 - 图76 …
三、循环变量i的使用
循环变量可以出现在参数位置,利用循环变量的规律变化,实现更多的功能。
text(i) fd(i) bk(i) rt(i) lt(i) size(i) c(i) oo(i) rr(i,i) 大家开动脑筋,结合前面所学的知识,利用循环变量的变化,创作更多的作品吧!
二、动画的实现:
连续动作1à停留à连续动作2à停留à连续动作3à停留à连续动作4à停留… 利用视觉暂留的特点,我们就看到一组连续动作出现了。
三、等待命令
格式:wait( second );
wait 英[weɪt] 中文释义:等待; 等; 等候
second 英[ˈsekənd , sɪˈkɒnd] 中文释义:秒(时间单位)
功能:程序运行到这里会等待指定时间,再继续运行。
等待的时间单位是秒,可以是小数。
说明:wait不是pen的命令,格式不能“pen.”开头。适当的使用wait不仅方便调试程序和演示绘图过程,还是实现动画的必要方法。second要保证>=0。
样例:wait(0.2);
表示程序在这里停留0.2秒。
第 14 课 练习与巩固 一、学会观察和思考 做一名小小观察家,观察日常生活中,哪些物品包含你所学习的图形呢?
GOC基础指令 - 图77
说说你身边的有趣图形吧!
二、图形里的数学计算:
我们学习了矩形命令r/rr,画圆命令o/oo,椭圆命令e/ee。
我们发现:这些图形在绘制的时候,都是以画笔为中心点去画图形的!
GOC基础指令 - 图78
当这些图形组合成更多有趣图形时,其中包含了很多的数据,是需要我们去计算的。
1、画笔移动的距离
GOC基础指令 - 图79
描述:黑色正方形上面有一个红色实心圆。
问题:画笔需要怎样移动,才可以画出这个图形呢?
这需要我们了解边长和半径,有了这两个数据,这个图形就可以画出来了。
举一反三:那这些图形呢?你还发现哪些图形需要这样的计算?
GOC基础指令 - 图80
2、画笔旋转的角度
GOC基础指令 - 图81
描述:正方形里面有一个内切圆,圆形被均匀的分成了8份。
问题1:正方形的边长与圆的半径是什么关系?
问题2:圆形被切分成了均匀的8份,每一份的角度是多少呢?
正方形的边长是这个圆的半径的2倍;
360.0/8=45°,这就是每一份的角度。
举一反三:那这些图形呢?你还发现哪些转角的计算?
GOC基础指令 - 图82
3、画笔旋转方向的判断
画笔既可以顺时针绘制正多边形,也可以逆时针绘制正多边形。
利用两种转向,就可以画出下面红、蓝两色正六边形。
GOC基础指令 - 图83
在当前画笔所指方向,顺时针绘制红色正六边形,逆时针绘制蓝色正六边形。
举一反三:那这些图形呢?是否结合了顺时针和逆时针转向呢?
GOC基础指令 - 图84
三、顺序结构的认识
计算机的程序执行是按照顺序来运行的。
顺序不同,显示的结果不同。
GOC基础指令 - 图85
举一反三:那这些图形呢?图形是怎样变化和叠加的?
GOC基础指令 - 图86
四、for循环和循环变量可以通过图形来显示
1.循环节的判断
合理设置循环节,进行for循环,可以绘制各种奇妙图形!
GOC基础指令 - 图87
2、循环变量i有大用途
例1:循环变量i设置画笔颜色和前进长度,结合前进与转角动作,产生了下面的五彩星形!
int main(){
p.speed(10);
for(int i = 0; i < 100; i ++)
p.c(i).fd(i).rt(150 );
return 0;
}
GOC基础指令 - 图88
例2:循环变量i成为矩形的宽度变量,画出了二维码。
int main(){
p.rt(90).up();
for(int i = 0; i < 14; i++)
p.rr(i,100).fd(15);
return 0;
}
GOC基础指令 - 图89
思考一下,你还能列举出循环变量的奇妙用途吗?
五、平行四边形(Parallelogram),是在同一个二维平面内,由两组平行线段组成的闭合图形。
5.1、 平行四边形的边:
ab与cd平行
bc与ad平行
GOC基础指令 - 图90
image.png
写作: ab//cd ; bc//ad
二、平行四边形的角:
GOC基础指令 - 图91
平行四边形的四个顶点上的角,∠1、∠2、∠3、∠4 。
1.平行四边形的内角和是360°;
∠1+∠2+∠3+∠4=360°
2.平行四边形的对角相等;
∠1和∠3相对,∠2和∠4相对
∠1=∠3; ∠2=∠4
3.平行四边形的邻角之和是180°。
∠1和∠2相邻,∠2和∠3相邻,∠3和∠4相邻,∠4和∠1相邻:
∠1+∠2=180° ; ∠2+∠3=180° ; ∠3+∠4=180°; ∠4+∠1=180°
三、平行四边形的外角:
GOC基础指令 - 图92
平行四边形的四个外角,∠1和∠8组成了平角,∠2和∠5组成了平角,∠3和∠6组成了平角,∠4和∠7组成了平角, 。
∠1+∠8=180° ; ∠2+∠5=180° ; ∠3+∠6=180°; ∠4+∠7=180°
∠1+∠2+∠3+∠4=360°
∠5+∠6+∠7+∠8=360°
注:平行四边形的英文:(parallelogram [ˌpærəˈleləɡræm])
GOC 入门 VIP(12) 思维:循环变量的在表达式中的运用。 知识:变量表达式,+、-、*、/四则运算。 技能:for循环产生数列。 方法:用循环变量计算得到一串数。 思维:循环变量的在表达式中的运用。 知识:整数除法的求商——整除运算/。技能:for循环产生数列。方 法:用循环变量计算得到一串数。 GOC 入门 VIP(13) 思维:动画原理—-视觉暂留。 知识:picU(0) 图片随笔旋转。技能:简单动画。 方法:熟练for循环的运用。 思维:文字类比图片处理。 知识:文字大小和方向:text(str,c,size)、textU(0)。 技能:熟练for循环的运用。 方法:循环变量改变大小方向。 GOC 入门 VIP(14) 思维:周期变化。 知识:%—-模运算。 技能:产生周期变化。 方法:用循环变量求余数运算得到周期变化数。 GoC模拟赛、教学质量测试 一些比较正规的GoC模拟赛和教学质量测试卷等
GoC正式比赛集 GoC正式比赛,内容涉及循环、一维数组、基本的和扩展的绘图命令。
魔法学院(1) 魔法学院第3-8课.
魔法学院(2) 魔法学院第9-14课
GoC下册1-5课 2018-2019年度下册GoC课本的前5课,主要是显示图片与C++的if、for、cin等知识点结合,恰当显示图形。 题型总结&比赛技巧 绘制正多边形类 Goc挑战赛集训 - 图1
int main() { p.c(10).size(10); for(int i = 1; i <= 4; i++){ p.fd(100).rt(90); } return 0; } Goc挑战赛集训 - 图2
int main() { p.c(13).size(10); for(int i = 1; i <= 8; i++){ p.fd(80).rt(45); } return 0; } Goc挑战赛集训 - 图3
int main() { p.size(10); for(int i = 1; i <= 18; i++){ p.fd(40).rt(20); } return 0; } Goc挑战赛集训 - 图4
int main() { for(int i = 1; i <= 5; i++){ p.fd(100).lt(360/5); } return 0; } 思考 对于绘制多边形这类型的题目,是否可以使用“定义变量” 和“cin控制边数”来实现一个通用的程序代码? 认真思考后请尝试书写 Goc挑战赛集训 - 图5
int main() { int n ; cin >> n; for(int i = 1; i <= n; i++){ p.fd(50).rt(360/n); } return 0; } 生活场景类 Goc挑战赛集训 - 图6
int main() { p.size(10); p.c(0).fd(120); p.up().fd(40); p.down().o(40); p.c(15).oo(33); p.c(1).oo(30); p.text(“60”,15); p.hide(); } Goc挑战赛集训 - 图7
int main() { p.c(13).oo(120); p.up(); for(int i = 0;i < 12 ;i ++){ p.fd(100).text(i,0).bk(100).rt(360/12); } } Goc挑战赛集训 - 图8
int main() { p.picU(0); p.c(13).rr(200,200); p.rt(45).rr(200,200); p.c(1).oo(70); p.hide(); } Goc挑战赛集训 - 图9
int main() { p.picU(0); p.rt(45).rr(300,300,1); p.c(15).fd(100).rr(100,100).bk(100); p.rt(90).fd(100).rr(100,100).bk(100); p.rt(90).fd(100).rr(100,100).bk(100); p.rt(90).fd(100).rr(100,100).bk(100); p.rr(100,100,1); p.hide(); } Goc挑战赛集训 - 图10
创意类图形 Goc挑战赛集训 - 图11 Goc挑战赛集训 - 图12
//通过控制笔的粗细、交替的颜色变化,我们还可以绘制一顶小丑的帽子。
int main(){
p.text(“小丑的帽子”,0,30,0,0,300);//显示标题,小丑的帽子
p.speed(1.5);//设置速度1.5较慢
p.c(1).size(300).fd(23);
p.c(12).size(270).fd(23);
p.c(11).size(240).fd(23);
p.c(13).size(210).fd(23);
p.c(12).size(180).fd(23);
p.c(14).size(150).fd(23);
p.c(4).size(120).fd(23);
p.c(2).size(90).fd(28);
p.c(12).size(80).fd(3);
p.hide();//隐藏笔头
return 0;
}
Goc挑战赛集训 - 图13
Goc挑战赛集训 - 图14
//利用up()和down()(抬笔和落笔命令)实现画笔位置的移动
//请大家仔细观察,画笔的位置。
//了解这辆彩色公交车是怎样画出来的吧!
int main(){
p.speed(10);//调整画笔速度,1-10,10是最快速度
p.moveTo(-190,350).text(“彩色公交车”,7,48);
p.moveTo(-100,300).text(“利用up()和donw()让画笔自由移动位置画图”,7,28);
p.moveTo(0,-100);
//抬笔,让画笔可以自由移动位置
p.up();
wait(2);
p.rr(600,100,11);//紫色公交车车厢
wait(1);//画笔等待1秒钟
p.fd(58);
p.rr(600,10,7);//蓝色公交车身线条
wait(1);
p.fd(20);
p.rr(600,20,1);//红色长车身
wait(1);
p.fd(60).rt(90).fd(40).lt(90);
p.rr(520,130,1);//红色车厢
wait(1);
p.bk(180).rt(90).fd(110);
wait(1);
p.down().size(1);
//利用for循环画公共汽车的后轮
p.c(0).size(12);
for(int i = 0; i < 60; i++)
p.fd(60).bk(60).rt(6);
p.c(15);
for(int i = 0; i < 60; i++)
p.fd(35).bk(35).rt(6);
p.size(12).c(0);
for(int i = 0; i < 10; i++)
p.fd(35).bk(35).rt(36);
p.up();
p.bk(300);
wait(1);
//利用for循环画公共汽车前轮
p.down().c(0);
for(int i = 0; i < 60; i++)
p.fd(60).bk(60).rt(6);
p.c(15);
for(int i = 0; i < 60; i++)
p.fd(35).bk(35).rt(6);
p.c(0);
for(int i = 0; i < 10; i++)
p.fd(35).bk(35).rt(36);
//使用抬笔命令 ,让画笔来到新的位置画图,画三个窗户
p.up().bk(150).rt(90).bk(70).lt(90).bk(20);
p.rr(40,100,13);//黄色车灯
wait(1);
p.fd(210).lt(90).fd(110);
p.rt(90);
p.rr(115,90,15);//蓝色窗户
wait(1);
p.fd(57+30+57);
p.rr(115,90,9);//粉色窗户
wait(1);
p.fd(57+30+57);
p.rr(115,90,5); //黄色窗户
wait(1);
p.hide();
wait(10);
return 0;
}
Goc挑战赛集训 - 图15 方法一:逐点绘制
//小蘑菇的顶部是利用for循环实现的。仔细看一看它是怎样形成的? //小蘑菇的顶部,重复动作是什么? //一共重复了多少次? //相邻的重复动作之间转角是多少? int main(){ p.speed(8);//调整画笔画图的速度(1-10,10最快); p.c(13);//设置画笔的颜色为黄色; p.lt(90);//调整画笔的方向; p.rr(800,800,8);//画面的背景是一个宽800,高800的灰色矩形; for(int i=0;i<180;i++) //重复180次 p.fd(150).bk(150).rt(1);//前进、后退、转角; p.speed(4);//调整画笔的速度慢一点 p.lt(90).bk(50).rr(140,100,14);//调整画笔方向和位置,画橘红色矩形; return 0; } 方法二:画弧线法
int main(){ p.rr(800,800,8);//画面的背景是一个宽800,高800的灰色矩形; p.picU(0).up().lt(90); p.aa(150,180,1,13); p.rt(90).bk(50).rr(140,100,14);//调整画笔方向和位置,画橘红色矩形; return 0; } Goc挑战赛集训 - 图16 方法一:逐点绘制
//利用三个for循环,进行了线条的旋转。
//问题1:下面图形的重复动作是什么?
//问题2:下面图形旋转点在哪里?
int main(){
p.speed(7);//调节画图的速度(1-10,10最快)
p.c(0);//设置画笔为黑色
for(int i=0;i<180;i++) //重复180次
p.fd(110).bk(220).fd(110).rt(1);//前进、后退、前进、转角;
//上面图形旋转点在哪里?
p.c(15);//设置画笔为白色
for(int i=0;i<90;i++) //重复90次
p.fd(100).bk(200).fd(100).rt(1);//前进、后退、前进、转角;
p.c(2);//设置画笔为蓝色
for(int i=0;i<90;i++) //重复90次
p.fd(100).bk(200).fd(100).rt(1); //前进、后退、前进、转角;
return 0;
}
方法二:画弧线法
// 三角形设置为 101 是为隐藏连接线 int main(){ p.oo(110,0); p.oo(100,2); p.picU(0); // 绘制 扇形 p.aa(100,90,1,15); p.rt(180).aa(100,90,1,15); // 绘制直角三角形 p.polXY(0,0).polXY(0,101).polXY(101,0).pol(1,15); p.polXY(0,0).polXY(0,-101).polXY(-101,0).pol(1,15); return 0; } Goc挑战赛集训 - 图17
// 水滴 int main(){ p.c(12); for(int i=3;i<80;i++) p.bk(2).oo(i); p.hide(); return 0; } Goc挑战赛集训 - 图18
//橙子 //结合叠加的同心圆,配合for循环,画出切割圆的线段 int main(){ p.text(“画橙子”,14,50,0,0,300);//写标题 p.oo(200,13); //画最大的黄色圆 wait(1); //让画笔等待一秒钟 p.oo(180,15); //画橙皮的白色部分 wait(1); //让画笔等待一秒钟 p.oo(160,14); //画里面的果肉 wait(1); //让画笔等待一秒钟 p.c(15).size(10); //设置笔色为白色,笔宽10 //使用for循环,画切割线 for(int i = 0; i < 6; i ++) p.fd(160).bk(160).rt(60); p.hide(); //隐藏画笔 return 0; } Goc挑战赛集训 - 图19
// 画葫芦 //结合抬笔命令,移动画笔到合适的位置,画出可爱的葫芦。 int main(){ p.text(“画 葫 芦”,7,59,0,-230,320);//显示标题 p.up().bk(160); //抬笔,移动画笔到合适的位置 p.oo(200,14).fd(170); //画最下面的圆,并向上移动到下一个圆的圆心 p.oo(150,13).fd(130); //画中间的圆,并向上移动到下一个圆的圆心 p.oo(90,5).fd(90); //画最上面的圆,并向前移动到顶部 p.c(10).size(20).down().fd(80); //画葫芦柄 p.hide(); //隐藏笔 return 0; } Goc挑战赛集训 - 图20
// 水滴 int main(){ p.c(11); for(int i=0;i<80;i++) p.fd(2).oo(i).rt(0.2); p.hide(); return 0; } Goc挑战赛集训 - 图21
// 旋转的太极图
int main()
{
p.hide();
int c1 = 15,c2=0;
p.up().picU(0);
while(1){
p.speed(10);
p.oo(202,c2) // 画黑底圆
.aa(200,180,1,c1) // 把右侧填充为白色半圆
.fd(100).oo(100,c1)
.oo(35,c2)
.bk(200).oo(100,c2)
.oo(35,c1)
.fd(100);
p.speed(1).rt(2);
wait(0.01);
p.clsRec();
}
}
旋转类图形
picU(1/0), 放图形跟随画笔旋转
Goc挑战赛集训 - 图22
int main() { p.hide().picU(0).rt(45); p.moveTo(-75,0).r(100,100,2); p.lineTo(75,0).r(100,100,2); } Goc挑战赛集训 - 图23
// 画三个正方形叠加
int main()
{
p.picU(0).c(1);
p.r(100,100);
p.rt(60).r(100,100);
p.rt(60).r(100,100);
p.hide();
return 0;
}
Goc挑战赛集训 - 图24
int main() { p.up().picU(0).hide(); for(int i = 0; i < 4; i ++){ p.r(200,30,11).rt(90).fd(100); } } Goc挑战赛集训 - 图25 方法一:
int main() { p.up(); p.ee(100,50,1); p.ee(50,100,1); p.oo(50,5); return 0; } 方法二: picU()
int main()
{
p.up();
p.picU(0); // 设置图片方向
p.ee(100,50,1);
p.rt(90);
p.ee(100,50,1);
p.oo(50,5);
return 0;
}
中心放射类图形
Goc挑战赛集训 - 图26
int main() { for(int i= 0;i < 10;i++){ p.c(i%10).fd(100).oo(20).bk(100).rt(360/10); } return 0; } Goc挑战赛集训 - 图27
int main() { p.up(); for(int i = 1; i <= 12;i++){ p.rt(360/12).fd(100).o(20).text(i).bk(100); } return 0; } 动画类 Goc挑战赛集训 - 图28
int main() { p.hide(); for(int i= 20; i> 0; i—){ p.cls().ee(85,120,10).e(85,120,13); p.textSize(90).text(i,5); wait(1); } } Goc挑战赛集训 - 图29 方法一:
int main() { p.hide(); p.picU(0); for(int i = 1; i <= 20;i ++){ p.cls().rt(18*i).ee(30,100,1).oo(10,0); wait(0.2); } } 方法二:
int main() { p.hide(); p.picU(0); for(int i = 1; i <= 20;i ++){ p.clsRec().rt(18).ee(30,100,1).oo(10,0); wait(0.2); } } 说明:clsRec是clearRectangular (清除矩形)的缩写,没有参数的clsRec()表示清整个屏幕,它与cls()不同,pen位置不会坐标回原点。如果picU(1);方向会随笔头。
Goc挑战赛集训 - 图30
int main() { p.hide().up().moveTo(-100,100).rt(135); for(int i = 1; i <= 10;i ++){ p.clsRec().ee(15i,10i,14).fd(50); wait(0.2); } } 动画重点 动画类作品两个关键函数:clsRec(w,h) 和wait( )
循环中的变量控制 Goc挑战赛集训 - 图31
int main() { for(int i= 5;i <= 150;i=i+5){ p.fd(i).rt(90); } return 0; } Goc挑战赛集训 - 图32
int main()
{
for(int i= 1;i <= 32;i++){
p.c((i+3)/4).fd(i*5).rt(90);
}
return 0;
}
Goc挑战赛集训 - 图33
int main()
{
for(int i= 1;i <= 32;i++){
p.c((i-1)%4+1).fd(i*5).rt(90);
}
return 0;
}
Goc挑战赛集训 - 图34
int main() { p.hide().up().picU(0).rt(-105); for(int i = 3; i <=25; i += 2){ p.fd(120).o(30,11).text(i,10).bk(120).rt(30); } } int main() { pen.hide(); pen.rr(10,90,3); pen.up();
pen.fd(50);
pen.e(34,30);
return 0;
}\ int main() { pen.hide(); pen.rr(10,90,3); pen.up();
pen.fd(75);
pen.e(34,30);
return 0;
} `int main() { int w; cin>>w; pen.picL(1,”close.png”); pen.picL(1,”open.png”); pen.pic(1,800,600);
if(w<100){
p.pic(2,800,600);
}
return 0;
}`
[TOC]
int main() { pen.hide(); pen.up(); pen.fd(300); pen.c(2); for(int i=1;i<45;i++) { pen.bk(2); pen.oo(i,2);
}
cout<<"ok";
return 0;
} int main() { pen.hide(); pen.up(); pen.picU(0); for(int i=0;i<3;i++) { pen.ee(40,120); pen.rt(60); } pen.oo(40,3); return 0; } int main() { pen.hide(); pen.up(); pen.picU(0); pen.fd(50);
for(int i=0;i<8;i++) {
pen.lt(45);
pen.text(i,2,50);
pen.fd(100);
}
return 0;
} int main(){ for(int i=0;i<;i++) pen.fd(3) pen.bk(3) pen.rt(3) return 0; }