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);

  1. }
  2. cout<<"ok";
  3. 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);

  1. for(int i=0;i<8;i++) {
  2. pen.lt(45);
  3. pen.text(i,2,50);
  4. pen.fd(100);
  5. }
  6. return 0;

} int main(){ for(int i=0;i<;i++) pen.fd(3) pen.bk(3) pen.rt(3) return 0; } [TOC]

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()

  1. double
  2. cinWin();cout<<
  3. cin>>
  4. { }

= 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设置画笔颜色和前进长度,结合前进与转角动作,产生了下面的五彩星形!

  1. int main(){
  2. p.speed(10);
  3. for(int i = 0; i < 100; i ++)
  4. p.c(i).fd(i).rt(150 );
  5. return 0;
  6. }

GOC基础指令 - 图88

例2:循环变量i成为矩形的宽度变量,画出了二维码。

  1. int main(){
  2. p.rt(90).up();
  3. for(int i = 0; i < 14; i++)
  4. p.rr(i,100).fd(15);
  5. return 0;
  6. }

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();

  1. pen.fd(50);
  2. pen.e(34,30);
  3. return 0;

}\ int main() { pen.hide(); pen.rr(10,90,3); pen.up();

  1. pen.fd(75);
  2. pen.e(34,30);
  3. return 0;

} `int main() { int w; cin>>w; pen.picL(1,”close.png”); pen.picL(1,”open.png”); pen.pic(1,800,600);

  1. if(w<100){
  2. p.pic(2,800,600);
  3. }
  4. 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);

  1. }
  2. cout<<"ok";
  3. 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);

  1. for(int i=0;i<8;i++) {
  2. pen.lt(45);
  3. pen.text(i,2,50);
  4. pen.fd(100);
  5. }
  6. return 0;

} int main(){ for(int i=0;i<;i++) pen.fd(3) pen.bk(3) pen.rt(3) return 0; } int main() { p.hide(); int c1 = 15,c2=0; p.up().picU(0); while(1){

  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(); }

} 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(); }

} int main() { p.hide(); p.up().picU(0); while(1){

  1. p.speed(10);

p.ee(202,6,6) ; p.oo(5,0); p.speed(1).rt(2); wait(0.01); p.clsRec(); }

}