# 一页纸 GoC 手册

基于 www.51goc.com (opens new window) 的手册进行修改
适用于佛山市南海区的孩子

# 设置笔的状态

# 设置笔的颜色

  • 语法: pen.c( color )
    • c = color, 颜色
    • color 表示“颜色”, 取值范围是 0 ~ 15
  • 功能:
    • 设置笔的颜色
    • 一共有 16 种颜色, 编号 0 ~ 15
  • 例子:
    • pen.c(1).fd(80)
      • Pasted image 20220816144919

# 设置笔的粗细

  • 语法: pen.size( width )
    • size 表示“大小”
    • width 表示“宽度”, 必须为正整数
  • 功能:
    • 设置笔的粗细为指定的宽度
  • 例子:
    • pen.size(1).fd(100)

      • Pasted image 20220816145317
    • pen.size(8).fd(100)

      • Pasted image 20220816145325

# 抬笔

  • 语法: pen.up( )
  • 功能:
    • 抬笔之后, 笔移动就不会画出线段
    • 抬笔只是影响 fd、bk、lineTo 命令,对画圆、椭圆、矩形等命令没有影响
  • 例子:
    • pen.rt(90).fd(100).up( ).fd(100)
      • Pasted image 20220816145521

# 落笔

  • 语法: pen.down( )
  • 功能:
    • 程序默认就是落笔的状态
    • 抬笔之后, 笔移动不会画出线段; 落笔之后, 笔移动会画出线段
  • 例子:
    • pen.rt(90).fd(50).up( ).fd(50).down( ).fd(50)
      • Pasted image 20220816145827

# 基本画图命令

# 前进

  • 语法:pen.fd( length )
    • fd = forward / 前进
    • length 表示“长度”, 可以是整数或者小数
  • 功能:
    • 向前移动指定长度,画一条直线
  • 例子:
    • pen.fd(50)
      • Pasted image 20220816142053

# 后退

  • 语法: pen.bk( length )
    • bk = back / 后退
    • length 表示“长度”, 可以是整数或者小数
  • 功能:
    • 向后移动指定长度,画一条直线
  • 例子
    • pen.bk(80)
      • Pasted image 20220816143247

# 顺时针旋转

  • 语法: pen.rt( angle )
    • rt = right / 向右
    • angle 表示“角度”, 可以是整数或者小数
  • 功能:
    • 逆时针旋转指定角度
    • 默认状态下, 笔的方向朝上, 是 0 度
  • 例子:
    • pen.rt(60)
      • Pasted image 20220816143713

# 逆时针旋转

  • 语法: pen.lt( angle )
    • lt = left / 向左
    • angle 表示“角度”, 可以是整数或者小数
  • 功能:
    • 逆时针旋转指定角度
    • 默认状态下, 笔的方向朝上, 是 0 度
  • 例子:
    • pen.lt(60)
      • Pasted image 20220816143638

# 画圆

  • 语法:
    • pen.o( r )
    • pen.o( r,c )
    • pen.oo( r )
    • pen.oo(r,c)
  • 功能:
    • 以笔所在的位置为圆心, 画圆,以 r 为半径, 以 c 为颜色
    • 如果没有指定 c,就使用当前笔的颜色
    • pen.o() 是空心圆, pen.oo()是实心圆
  • 例子
    • pen.o(70).oo(50,3)
      • Pasted image 20220816151829

# 画椭圆

  • 语法:
    • pen.e( w, h )
    • pen.e( w, h, c )
    • pen.ee( w, h )
    • pen.ee( w, h, c )
  • 功能:
    • 以笔所在的位置为圆心, 画椭圆, 以 w 为横半径, 以 h 为纵半径, 以 c 为颜色
    • c 为颜色编号, 如果没有指定 c,就使用当前笔的颜色
    • pen.e( w, h )是空心椭圆, pen.ee( w, h )是实心椭圆
    • 如果设置了 picU(0), 绘制椭圆的方向, 会跟随笔头的方向
  • 例子:
    • pen.rt(45).ee(40,70,13).e(30,60,1)
      • Pasted image 20220816152404
    • pen.rt(45).picU(0).ee(40,70,13).e(30,60,1)
      • Pasted image 20220816152328

# 画矩形

  • 语法:
    • pen.r( w, h )
    • pen.r( w, h, c )
    • pen.rr( w, h )
    • pen.rr( w, h, c )
  • 功能:
    • 以笔的位置为中心,画矩形, 以 w 为矩形的宽, 以 h 为矩形的高
    • c 为颜色编号, 如果没有指定 c,就使用当前笔的颜色
    • r 是空心矩形, rr 是实心矩形

# 清理屏幕

  • 语法: pen.cls( )
    • cls = clearScreen / 清除屏幕
  • 功能:
    • 清除整个绘图区域。笔回到坐标原点,并且方向朝上(0度)

# 坐标命令

# 移动

  • 语法: pen.moveTo( x, y )
  • 功能:
    • 将笔移动到指定坐标,但不画图. 也就是说, 在移动的过程中, 不会画线
  • 功能:
    • moveTo命令不会画出线条,笔的方向也不会改变
  • 注意:
    • moveTo 命令不会画线,笔的方向也不会改变. lineTo 命令会画出线条,但笔的方向不会改变
  • 例子
    • pen.oo(20,1).moveTo(40,0).oo(20,2).moveTo(80,0).oo(20,3)
      • Pasted image 20220816153946

# 连线

  • 语法: pen.lineTo( x, y )
  • 功能:
    • 将笔移动到指定坐标, 在移动的过程中会画线
  • 注意:
    • lineTo 命令会画出线条,但笔的方向不会改变. moveTo 命令不会画线,笔的方向也不会改变
  • 例子:
    • pen.lineTo(50,50).lineTo(0,50).lineTo(0,0)
      • Pasted image 20220816154107

# 获取X坐标

  • 语法: getX( )
  • 功能:
    • 获得笔当前位置的X坐标值,并返回这个值
  • 例子:
    • p.rt(60).fd(200).text(getX(),1)
      • Pasted image 20220816153838

# 获取Y坐标

  • 语法: getY( )
  • 功能:
    • 获得笔当前位置的Y坐标值,并返回这个值
  • 例子:
    • pen.rt(60).fd(200); pen.text(getY())
      • Pasted image 20220816153755

# 获取角度

  • 语法: getAngle( )
  • 功能:
    • 获得笔当前的方向角度值,并返回这个值
  • 例子:
    • pen.rt(60).fd(100); pen.text(pen.getAngle())
      • Pasted image 20220816153721

# 设置角度

  • 语法: pen.setAngle( a )
  • 功能:
    • 不管当前笔的方向,直接定位到角度a ( 记住, 朝上是 0 度)
  • 例子:
    • pen.rt(60).fd(100).setAngle(180).fd(50)
      • Pasted image 20220816153559

# 输入 & 输出

# 键盘输入

  • 语法: cin>> x
    • cin = c + in
    • in 就是“输入”的意思
  • 功能:
    • 把键盘输入的数据, 存储到变量x
    • 将获取输入的代码放入循环中, 就可以获取多次输入
  • 例子:
    • int x; cin >> x;
      • Pasted image 20220816154304

# 设置键盘输入的提示

  • 语法: cinTitle( string )
  • 功能:
    • 设置键盘输入的提示
  • 例子
    • int x; cinTitle("第1个人输入:"); cin >> x;
      • Pasted image 20220816154633

# 输出

  • 语法: cout<< x
    • cout = c + out
    • out 就是“输出”的意思
  • 功能:
    • 将信息输出显示到屏幕
  • 例子:
    • cout << "面积=" <<12*5;
      • Pasted image 20220816154442

# 其他状态命令

# 显示笔

  • 语法: pen.show( )
    • show 表示“显示”
  • 功能:
    • 显示笔头, 方便查看笔的位置、方向、颜色
    • 配合 p.speed(3)命令,可以减慢笔的移动过程, 可以直观地查看笔的运动, 方便调试代码

# 隐藏笔

  • 语法: pen.hide( )
    • hide 表示“隐藏”
  • 功能:
    • 隐藏笔头

# 设置笔的移动速度

  • 语法: pen.speed( velocity )
    • speed 表示“速度”
    • velocity 表示“速度”, 一共分为 10 档,1 最慢,10 最快
  • 功能:
    • 配合 p.show() 命令可以直观地观察笔的运动过程, 方便调试程序

# 等待

  • 语法: wait( second );
    • wait 表示“等待”
    • second 表示“秒数”
    • 注意: wait 不是 pen 的命令,所以不能以pen.开头
    • 非常适合用来制作动画
  • 例子:
    • wait(0.2) 表示程序在这里会等待 0.2 秒

# 暂停

  • 语法:
    • pause( ): 使程序暂时停止运行。按任意键或鼠标点击时,程序继续运行
    • pause( second ): 使程序暂时停止运行
    • 非常适合用来调试代码 / Debug
  • 例子:
    • pause(0.2) 表示程序在这里会等待 0.2 秒, 但是一旦按键, 就会继续执行

# 数学函数

# 随机函数

  • 语法:
    • rand(): 从 0 到 65535 这些整数当中,随机选取一个
    • rand(a,b): 从 a 到 b 之间, 随机取一个整数