网络版GoC常见绘图命令说明

V3.8

目录

l  基本画图命令
fd, bk, lt, rt

l  设置笔状态命令
c, rgb, size, up, down

l  状态命令

show, hide, speed, showXY, wait, pause, cls, clsRec

l  增强画图命令
o, oo, e, ee, r, rr

l  坐标命令

moveTo, lineTo, getX, getY, getAngle, setAngle

l  文字命令
text, precision, textSize, font,textU,d2s

l  图片命令
setPath,picL, pic, picO, picU, cav, ani

l  声音命令
soundL,sound,soundLoop,soundVol,soundPause,soundStop

l  输入输出命令
cin,cinTitle,cinWin, cout

l  键盘检测命令
getKey,getDigit,waitKey,getDownKey

l  鼠标检测命令
waitMouse,mouseDown,getMX,getMY,getMDX,getMDY,mouseIn,cursor

l  按钮命令
button,buttonMP,buttonMI

l  命令
alp, a, aa, ch, drawH, pXY, pol,cap, save, load, videoPlay,

getTime, getYear, getMonth, getDate, getHour, getMinute, getSecond,ctime

l  数学函数
rand(), sin, cos, pow,strlen

 

 

 

命令类型

命令格式

功能说明

名称:前进

格式pen.fd( length );

功能:笔向前移动指定长度,以当前颜色画一条直线。

说明fdforward(前进)的缩写;length可为整数或小数。

样例pen.fd( 50 ); 

    

名称 后退

格式pen.bk( length );

功能:笔向后移动指定长度,以当前颜色画一条直线。

说明bkback(后退)的缩写;length可为整数或小数。

样例pen.bk( 80 ); 

    

名称:顺时针旋转

格式pen.rt( angle );

功能:笔的方向在当前位置和方向顺时针旋转指定角度,一周是360度。

说明rtright(向右)的缩写,所以也称为右转命令;angle可为整数或小数。

样例pen.rt( 60 ); 

    

名称:逆时针旋转

格式pen.lt( angle );

功能:笔的方向在当前位置逆时针旋转指定角度,一周是360度。

说明ltleft(向左)的缩写,所以也称为左转命令;angle可为整数或小数。

样例pen.lt( 60 ); 

    

名称:设置颜色

格式pen.c( color );

功能:设置笔的颜色为指定颜色,以后笔将使用这个颜色画图。颜色有16种,编号015

说明ccolor(颜色)的缩写,简称颜色命令;color一般为015的整数;第16号颜色是pen.rgb()设置的颜色。

样例pen.c( 1 ); pen.fd( 80 ); 

    

名称:设置RGB颜色

格式pen.rgb(r, g, b );

功能:设置第16号颜色为指定的RGB格式定义的颜色。

说明:第16号颜色默认是淡绿色。可以设置一百多万种颜色。

样例p.rgb(166,254,167).c(16).oo(50);

名称:设置粗细

格式pen.size( width );

功能:设置笔的粗细为指定宽度,以后笔将使用这个宽度画图。

说明size的意思是大小,所以简称大小命令。宽度width的值为正整数。

样例pen.size( 1 ). fd( 100 );  pen.size( 8 ). fd( 100 );

 

名称:抬笔

格式pen.up( );

功能:把笔抬起悬空(阴影表示),以后笔移动时不会画出直线。

说明:没有参数。抬笔只是影响fdlineTo命令,对画圆、椭圆、矩形等命令没有影响。

样例pen.rt(90).fd(100).up( ).fd( 100 );

 

名称:落笔

格式pen.down( );

功能:把笔落下,以后笔移动时又会正常画出直线。

说明:没有参数。

样例pen.rt(90).fd(50).up( ).fd( 50 ).down( ).fd(50);

 

名称:显示笔

格式pen.show( );

功能:把笔当前的颜色、位置和方向等状态用笔头动态显示出来。配合speed命令,可以演示笔的移动、转弯过程。

说明:没有参数;可用与hide命令配合,转换会显示/隐藏笔。

相关的:在已经显示笔的情况下再用pen.drawH()命令,会在画布上静态留下笔头图形。

名称:隐藏笔

格式pen.hide( );

功能:取消笔的显示状态。

说明:没有参数。一般是为了提高绘图速度或图形中不出现笔。

样例pen.hide().rt(90).fd(100);

  

名称:速度

格式pen.speed( v );

功能:调整笔移动、旋转的速度。速度分为10个等级,v=1最慢,v=10最快。

说明:速度值 v110的数值。speed配合show命令可以方便调试程序,演示绘图过程。

名称:画坐标

格式pen.showXY(len,color,size );

功能:显示一个简单的网格线坐标。网格线间隔距离len,网格线颜色color号,网格线粗细size

说明showXY绘制坐标到画布上,与面板的“坐标”按钮无关。

样例pen.showXY(100,1,1); showXY(1000,0,2);2种效果:

 

名称:等待

格式wait( second );

功能:程序运行到这里会等待指定时间,再继续运行。等待的时间单位是秒,可以是小数。

说明wait不是pen的命令,格式不能“pen.”开头。适当的使用wait不仅方便调试程序和演示绘图过程,还是实现动画的必要方法。second要保证>=0

样例wait(0.2);

   表示程序在这里停留0.2秒。

名称:暂停

格式pause( );

      pause( second );

功能:使程序暂时停止运行。按任意键或鼠标点击时,程序继续运行。pause( second )格式时,second秒后,结束等待,程序继续运行。

说明不是pen的命令,格式不能“pen.”开头。没有参数时,一直等待。

样例pause(5.5);

   表示程序在这里等待5.5秒,但按键就会终止等待,继续运行。

 

名称 清屏

格式pen.cls( );   

功能:清除整个绘图区域。笔的位置回到坐标原点,笔的方向朝上(0度)。

说明clsclearScreen(清除屏幕)的缩写。

样例p.cls(0);       

 

名称 清矩形

格式pen.clsRec( w, h );

pen.clsRec( );

功能:对笔位置为中心的矩形区域清除颜色(变成无色透明)w为宽,h为高。

说明clsRecclearRectangular (清除矩形)的缩写,没有参数的clsRec()表示清整个屏幕,它与cls()不同,pen位置不会坐标回原点。如果picU(1);方向会随笔头。

样例p.oo(200).clsRec(100,150);

    

名称:画圆

格式pen.o( r );

pen.o( r,c );

pen.oo( r );

      pen.oo(r,c);

功能:以笔位置为圆心,r为半径,画圆。oo命令是画实心圆。c为颜色编号。

说明:命令中如果省略c,用当前笔的颜色画图。

样例pen.o(70).oo(50,3);

   

名称:画椭圆

格式pen.e( w, h );

pen.e( w, h, c );

      pen.ee( w, h );

pen.ee(w, h, c);

功能:以笔位置为圆心,横半径为w纵半径为h画椭圆。ee命令是画实心椭圆。c为颜色编号。

说明:命令中省略c时用当前笔的颜色画图。如果picU(0);方向会随笔头。

样例pen.rt(45).picU(0).ee(40,70,13).e(30,60,1);

   

名称:画矩形

格式pen.r( w, h );

pen.r( w, h, c );

pen.rr( w, h );

pen.rr(w, h, c);

功能:以笔位置为中心,画宽为w高为h的矩形。rr命令是画实心矩形。c为颜色编号。

说明:命令中省略c时用当前笔的颜色画图。如果picU(0);方向会随笔头。

样例pen.rt(45).picU(0).r(70,100,2).rr(60,90,3);

   

名称:移动

格式pen.moveTo( x, y );

功能:直接把笔的位置移动到指定的坐标,但不画图。

说明moveTo命令不会画出线条,笔的方向也不会改变。

样例pen.oo(20,1).moveTo(40,0).oo(20,2).moveTo(80,0).oo(20,3);  

   

名称:连线

格式pen.lineTo( x, y );

功能:笔的位置移动到指定的坐标,并画出线段。

说明lineTo命令会画出线条,但笔的方向不改变。

样例pen.lineTo(50,50).lineTo(0,50).lineTo(0,0);

   

名称:获取X坐标

格式getX( )

功能:获得笔当前位置的X坐标值,并返回这个值。

说明getX( )没有参数,但会返回X坐标值,是函数型命令。格式可以不用“pen.”开头。

样例p.rt(60).fd(200).text(getX(),1);

 

名称:获取Y坐标

格式getY( )

功能:获得笔当前位置的Y坐标值,并返回这个值。

说明getY( )没有参数但会返回Y坐标值,是函数型命令。格式可以不用“pen.”开头。

样例pen.rt(60).fd(200); pen.text(getY());

   

名称:获取角度

格式getAngle( )

功能:获得笔当前的方向角度值,并返回这个值。

说明getAngle( )没有参数但会返回角度值,是函数型命令。格式可以不用“pen.”开头。

样例pen.rt(60).fd(100); pen.text(pen.getAngle());

   

名称:设置角度

格式pen.setAngle( a );

功能:直接设置笔的方向为指定的角度。

说明setAngle命令不管现在笔的方向,直接定位到角度a

样例pen.rt(60).fd(100).setAngle(180).fd(50);

   

名称:画写文字

格式pen.text(x);

      pen.text(x, c);

功能:以笔的当前位置为中心,以c号颜色输出 x 的内容。x可以是数字、变量或字符串。

说明pen.text(x)每次输出都是以笔的位置为字符串中心。

如果x是浮点数字,按照指定精度输出。

如果缺省c,以笔的颜色为文字颜色。

样例pen.text("圆周率=",10).moveTo(80,0).text(3.1415);

备注:如果设置了pen.picU(0),输出文字的方向跟随pen的方向旋转。

名称:设置浮点数精度

格式pen.precision( len );

功能pen.text命令输出小数时,默认精度为小数点后2位。可以用本命令设置指定的精度。

说明len过长时,不填充0

样例pen.precision(4).text("圆周率="+d2s(3.141592),1,40);

   

名称:设置文字大小

格式pen.textSize( i );

功能:设置画出的字符的字体大小为i号。

说明:改变pen.text命令输出的文字大小。

样例pen.textSize(50).text("GoC程序");

名称:设置字体

格式pen.font( f );

功能:设置画出的文字的字体。f可以是字体编号或名称,字体编号参见附录1

说明:字体要当前计算机系统里有字库的才可以显示。

样例pen.textSize(40).font(3).text("你好",0);

       pen.moveTo(80,0).font("华文新魏").text("你好",1);    

名称:增强显示文字

格式

pen.text(s,col,size,dir,x,y,c2);

pen.text(s,col,size,dir,x,y);

pen.text(s,col,size,dir);

pen.text(s,col,size);

功能:这4给命令text的补充,增强了text的功能。有c2参数说,表示的是底色编号。c2=-1时,相当于无色(清除原来的颜色)。

说明text参数有123467个六种格式。

样例pen. text("GoC程序",11,50,45);

名称:设置字体方向

格式pen.textU( 0/1 );

功能:执行pen.textU(1),设置文字的方向始终向上;执行pen.textU(0),设置的文件方向随笔的方向旋转。(Uup的意思)

说明:默认文字方向是始终朝上的。有角度参数text按照参数的方向。

样例 p.textU(0);

  for (int i=0; i<6; i++)  

        p.fd(150).text(i,i,100).bk(150).rt(60);

名称:字转字符串

格式d2s( double )

功能d2s的是double to string的简称,就是数转化为字符串。

说明:在需要字符串和数字连接在一起显示时,使用这个函数比较方便。不是pen的命令,格式不能“pen.”开头。

样例 pen.hide().up();

   for (int i=0; i<12; i++)

     p.fd(150).text(d2s(i)+"",0,30).bk(150).rt(360/12);

 

名称:设置文件路径

格式pen.setPath(ps );

功能GoC单机版的图片、声音等文件的默认路径是pub子目录。可以用setPath命令指定文件在名字为ps的子目录,方便文件分类。

说明:必须是pub下的子目录。

样例

 

名称:调入设置一张图片

格式pen.picL( id,fname );

功能:把文件名为fname的图片调入,并设置对应为编号id,供后面显示图片pic等命令使用。(L表示load)

说明 图片格式可以是pngbmpjpg等多种; 调入图片文件比较“费时间”,通常在程序开头就完成picL命令。

样例 p.picL(1,"bird.png");

名称:调入设置多张图片

格式

pen.picL( idBeign,idEnd,fnames );

pen.picL( idBeign,idEnd,fname,sBegin );

功能:一次调入多张图片,并设置对应为编号idBeginidEnd,供后面显示图片pic等命令使用。

说明:参考调入设置一张图片命令。

1种命令格式中的idBeginid的开始编号,idEndid的结束编号。fnames是多个图形文件名的字符串,文件名中间用”,”隔开。

2种命令格式中的sBegin是图片文件的开始编号,图片文件名格式为:文件名+编号+.+后缀。

样例1pen.picL(0,2,"car.png,pen.png,tree.png");

这个命令相当于:

pen.picL(0,"car.png").picL(1,"pen.png").picL(2,"tree.png");

样例2pen.picL(3,6,"bike.png",0); 

这个命令相当于:

pen.picL(3,"bike0.png").picL(4,"bike1.png").picL(5,"bike2.png").picL(6,"bike3.png");

名称:显示图片

格式pen.pic( id );

      pen.pic(id, w, h);

      pen.pic(cav,id,w,h,angle,x,y);

功能:把编号为id的图片在笔位置显示。如果缺省w,h(宽和高)参数,就以图片原始大小显示。有7个参数的是增强格式,参数意义分别是:图层号、图片号、宽度、高度、方向、X坐标、Y坐标。

说明:默认的,笔的位置是图片的中心位置,显示时图片向上,如样例所示。

可以参看picOpicUp命令来修改默认项。

样例 p.picL(1,"bird.png");

 for (int i=0; i<4; i++)   p.fd(150).pic(1).bk(150).rt(90);

   

名称:设置绘图位置

格式pen.picO( 1/0 );      

功能:如果执行pen.picO(1),就是设置笔的位置是图片的中心;如果执行pen.picO(0),就是设置笔的位置是图片的左下角。

说明:默认笔的位置是图片的中心位置。

样例 p.picL(1,"bird.png").picO(0);

 for (int i=0; i<4; i++)   p.fd(150).pic(1) .o(10,1).bk(150).rt(90);

     

名称:设置图片方向

格式pen.picU( 1/0 );

功能:执行pen.picU(1),设置图片的方向始终向上;执行pen.picU(0),设置的图片方向不是一直向上,而是按照笔的方向显示。(Uup的意思)

说明:默认图片方向是始终朝上的。

样例 p.picL(1,"bird.png").picU(0);

 for (int i=0; i<6; i++)  

p.fd(150) .pic(1).bk(150).rt(60);

   

名称:设置画布的层

格式pen.cav( -1/0/1 );

功能:网络版GoC目前有三次画面供画笔绘图。pen.cav(-1)设置画笔在最下面一层;pen.cav(1)设置画笔在最上面一层;pen.cav(0)设置画笔在中间一层。

说明:默认画笔在中间层;cav对绘图命令和图片命令都影响。

样例 p.cav(1).ee(80,200,1).rt(60);

        p.cav(0).ee(80,200,2).rt(60);

        p.cav(-1).ee(80,200,3).rt(60);

名称:动画图片

格式pen.ani(cavId, picId );

      pen.ani(cavId, picId, w, h);

pen.ani(cav,id,w,h,angle,x,y);

功能:与pic命令类似,但每次显示图片时,会自动清除画布上所以图形。cavId指定在第几层画布上显示,具体参见cav命令;picId为图形编号,具体参见cpicL命令。有7个参数的是增强格式,参数意义分别是:图层号、图片号、宽度、高度、方向、X坐标、Y坐标。

说明:这个命令在指定的画布层上,每次清除前面的图形,显示指定图片,比较方便一些动画制作。

样例p.speed(10).picL(1,"car.png");

      for (int i=0;i<20; i++) p.fd(50).ani(-1,1).rt(18);

名称:调入声音文件

格式pen.soundL(id, fname);

pen.soundL( idBeign,idEnd,fnames );

pen.soundL( idBeign,idEnd,fname,sBegin );

 

功能:和把图片文件调入命令picL相似,要播放声音也需要先吧声音文件调入并设置对应为编号id,供后面播放声音sound等命令使用。

说明 声音文件格式可以是mp3wav等多种;也有批量调入多个文件格式,具体参数格式可以查看命令picL的说明;文件位置也受setPath命令影响。 调入声音文件比较“费时间”,通常在程序开头就完成soundL命令。

样例 p.soundL(1,"rub.mp3");

       p.soundL(1,2,"rub.mp3,mus.wav");

名称:播放声音

格式pen.sound(id);

 

功能:播放编号为id的声音。

说明:只播放一次。程序结束时所有声音停止。

样例 p.soundL(1,"rub.mp3").sound(1);wait(5);

名称:循环播放声音

格式pen.soundLoop(id);

功能:循环播放编号为id的声音。

说明:如果再执行sound( id ),编号id的就会解除循环。

样例 p.soundL(1,"rub.mp3").soundLoop(1);wait(10);

名称:设置音量大小

格式pen.soundVol(id, v );

功能:设置编号为id的声音的音量为v

说明v10之间的小数,默认1为最大音量。

样例 p.soundVol(1,0.5);  设置音量为1半。

名称:暂停播放

格式pen.soundPause(id);

功能:如果正在播放id号声音,这个命令会暂停编号为id的声音播放。

说明:后面如果再播放id号声音,会接着播放。

样例 p.soundPause(1);

名称:停止声音播放

格式pen.soundStop( id );

       pen.soundStop();

功能:如果正在播放id号声音,soundStop( id )命令会停止编号为id的声音播放。

说明:后面如果再播放id号声音,会从头开始重新播放。没有指定idsoundStop()命令,将会停止所有声音播放。

样例 p.soundStop(1);

名称:键盘输入

格式cin>> x;

功能:从键盘输入数据到变量x

说明:是在笔的位置附近输入数据,回车结束输入。不是pen的命令,格式不能“pen.”开头。

样例int x;     cin >> x;

  

名称:键盘输入提示

格式cinTitle( string );

功能:改变键盘输入窗口的提示“请输入:”为 string

说明:自动设置为键盘输入模式。不是pen的命令,格式不能“pen.”开头。

样例int x;     cinTitle("1个人输入:");  cin >> x;

名称:设置窗口输入模式

格式cinWin();

功能:设置从输入窗口获取数据(数字或字符串)模式,后面的cin>>x将从输入窗口取值赋值给x

说明:类似从文件读入数据,程序运行前要在输入窗口准备好数据。不是pen的命令,格式不能“pen.”开头。

样例int a,b; cinWin(); cin >> a >>b;  pen.rr(a,b);

 

  

名称:窗口输出

格式cout << x;

功能:在下面输出窗口打印出表达式x的值。

说明:换行可以用cout<<endl; 浮点数时可用pen.precision命令设置精度,默认精度是2不是pen的命令,格式不能“pen.”开头。

样例cout << "面积=" <<12*5;

   

名称:获取按键的码值

格式getKey()

功能:这是一个获取键盘输入码的函数,可以取得按键的键码值(具体参见附录2)。是函数型命令。程序执行getKey()时如果有按键,取出这个键的码值,并返回。如果没有按键,返回值为0

说明不是pen的命令,格式不能“pen.”开头。几个特殊的键码值:空格---32, 回车---13,左箭头---37,上箭头--38, 右箭头---39, 下箭头---40

样例:一个用上下左右键画图的小程序。

名称:暂停,等按键继续

格式waitKey();

功能:当程序执行到这个语句时,程序暂停运行,等待用户按任意键继续执行程序。

说明不是pen的命令,格式不能“pen.”开头。waitKey()清除以前的按键纪录,并等待按键;键后的值保存到按键纪录里。如果后面使用getKey()getDigit()等命令,可以取到这个按键值。

名称:获取按数字键的值

格式getDigit()

功能:与getKey()函数不同,程序执行getDigit()时如果有按数字键,取出这个数字值(09),并返回。如果没有按数字键,返回值为-1。是函数型命令。

说明不是pen的命令,格式不能“pen.”开头。返回值是09的整数,或-1 在只检测按键是数字键时,getDigit()函数比getKey()函数方便使用。

名称:获取正按下键的码值

格式getDownKey()

功能:与getKey()函数不同,程序执行getDownKey()时,如果这时正在按键,才取出码值,并返回。否则返回值为0。是函数型命令。

说明不是pen的命令,格式不能“pen.”开头。getKey()getDigit()会取键盘纪录(缓冲区)里的键值,而getDownKey()只看“眼前”是否按键,有细微的区别。

名称:暂停,等待鼠标按键

格式waitMouse();

功能:当程序执行到这个语句时,程序暂停运行,等待用户按鼠标左键后继续执行程序。

说明不是pen的命令,格式不能“pen.”开头。一般后面配合使用getMDX()getMDY)等命令,可以取到鼠标按键时的坐标。

名称:获取鼠标坐标值

格式getMX()

      getMY()

功能getMX()get mouse X-co的简写,是获取当前鼠标X坐标的函数;getMY()是获取当前鼠标Y坐标的函数。

说明不是pen的命令,格式不能“pen.”开头。鼠标要在绘图窗口上才可以。

样例:绘鼠标轨迹的小程序。

for (;;)

        pen.moveTo(getMX(), getMY()).oo(5,1);

   

名称:获取按鼠标时的坐标

格式getMDX()

      getMDY()

功能getMDX()get mouse down X- coordinate的简写。getMDX()getMDY()是获取按鼠标时鼠标位置坐标的函数。

说明不是pen的命令,格式不能“pen.”开头。鼠标要在绘图窗口上才可以。GoC只纪录最后一次按鼠标的位置。

样例:按鼠标画图的小程序。

for (;;)

        pen.moveTo(getMDX(), getMDY()).oo(5,1);

名称:鼠标是否在某点附近

格式mouseIn(x,y,r)

功能:判断鼠标是否在坐标(x,y)半径r的圆形范围内。

说明不是pen的命令,格式不能“pen.”开头。鼠标要在绘图窗口上才可以。如果在范围内,返回1,否则返回0

样例if (mouseIn(0,0,10)==1) …

名称:鼠标是否按在某点附近

格式mouseDown(x,y,r)

mouseDown();

功能:判断鼠标是否在坐标(x,y)半径r的正方形范围内有按键动作。没有参数的mouseDown(),就是对整个画图区判断。

说明不是pen的命令,格式不能“pen.”开头。如果在范围内按鼠标,返回1,否则返回0

样例if (mouseDown(0,0,10)==1) …

名称:改变光标形状

格式:cursor( s );

功能:判断光标(鼠标)的形状。s参数常见的有:default | crosshair |  move | help | wait | text | w-resize |s-resize | n-resize |e-resize | ne-resize |sw-resize | se-resize | nw-resize |pointer|等。

说明不是pen的命令,格式不能“pen.”开头。”none”取消鼠标的光标;还可以自定义光标形状,例如:返回1cursor("url(images/goc1.ico),auto");

样例cursor("move");  

名称:显示一个按钮

格式

pen.button(id,string,col,size);

pen.button(id,string,col,size, dir,x,y);

pen.button(id,string,col,size, dir,x,y,bgcol);

pen.button(id,string,col,size, dir,x,y,bgcol,edgecol);

功能buton命令生成一个编号是id的按钮,按钮上的文字为string字符串,col指定了文字的颜色,size指定了文字的大小,dir是方向,坐标(x,y)是文字的中心位置,bgcol为按钮背景色,edge是边框颜色。

说明:如果是简单格式的button(id,string,col,size);就在pen当前位置显示文字。缺省的bgcol为白色,缺省edgecol为灰色。

样例pen.button(1,"确认按钮",0,30,20,100,200,5,3);

名称:鼠标点击按钮

格式buttonMP(id);

buttonMI(id);

功能buttonMPbuton  mouse press的简写,buttonMP(id)是判断鼠标是否在点击编号为id的按钮,是返回1,否则返回0

buttonMIbutton mouse in的简写,buttonMI(id)是判断鼠标位置是否在编号为id的按钮内,在按钮内返回1,否则返回0

说明不是pen的命令,格式不能“pen.”开头。通常使用buttonMP函数配合button来简单实现判断点击按钮功能。

样例p.c(1).rt(90);   

    p.button(1,"点这里画黑色点",02,40,0,0,150,5);

    p.button(2,"移动到这里画绿点",10,40,90,-200,0,4);

    for (;;){

       if ( buttonMP(1)) p.oo(10,0);

       if ( buttonMI(2)) p.oo(10,3);

       p.fd(1).rt(1);

}

名称:设置透明度

格式pen.alp( d );

功能:设置笔画图的透明度,d范围0~1

说明alp(0)设置完全透明;alp(1)设置不透明;对显示图片命令pic也有影响。

样例for (int i=1; i<=5; i++)  p.ee(90,30,i).alp(0.5).rt(75);

名称:画圆弧

格式pen.a( r, A, mod, c );

      pen.aa( r, A, mod, c );

功能:画一段圆弧。r表示半径,A表示弧度,mod可以取01两种模式,分别表示从笔的位置画一段弧或以笔为圆心画一段弧;c表示颜色。

说明:颜色c缺省时,以笔的颜色画;aa画一段实心扇形;画弧和画圆一样,笔的位置不变。如果picU(1);方向会随笔头。

样例1p.a(100,90,0);

样例2p.a(100,90,1,3);

样例3p.aa(100,180,0,3).a(100,90,0,0);

名称:换笔头

格式pen.CH ( id );

功能:把笔头显示换成编号id(picL设置)的图形。(cchangehhead意思)

说明:这个命令可以方便快速制作简单的动画;笔头显示在所有画布的上方;可以使用drawH()把图片固定显示到画布上。

样例p.picL(1,"pen.png").CH (1); 

     for (int i=0; i<10; i++)   p.fd(100).rt(36);

名称:画笔头

格式pen.drawH( );

功能:复制当前笔头形状,在画布当前图层上画一个固定的笔头图形。

说明:在需要留下笔头图形的地方使用drawH

样例for (int i=0; i<5; i++) p.drawH().fd(100).rt(72);

名称:设置多边形坐标

格式:pen.polXY(x, y);

      pen.polXY( );

功能:设置多边形的顶点坐标,为pol命令画多边形(polygon)做准备。(x,y)为坐标参数。

说明:如果缺省x,y就是清除以前polXY命令设置的坐标点。

样例p.polXY(0,80).polXY(80,80).polXY(80,0);   p.pol(0,1);

名称:画多边形

格式pen.pol( mod );

pen.pol( mod, col );

功能:按照polXY命令设置的多边形(polygon)顶点坐标,画多边形。mod=0时,只是画边;mod=1时,多边形会填充颜色。col是画图的颜色编号。

说明:如果缺省颜色号col就以当前笔的颜色画图。

样例p.polXY(0,80).polXY(80,80).polXY(80,0).pol(1,1);

名称:设置线端形状

格式pen.cap( mod );

功能:画线是,点的形状有圆形和方形,线端的转折点也有3种不同模式,对应mod0,1,2

说明:默认mod=0

样例p.size(20).speed(10);

   p.cap(0).c(0).fd(80).o(30,10).rt(90).fd(80);

   p.cap(1).c(1).fd(80).o(30,10).rt(90).fd(80);

   p.cap(2).c(2).fd(80).o(30,10).rt(90).fd(80);

名称:保存/恢复笔的状态

格式:pen.save( );

      pen.load( );

功能save命令把当前笔的颜色、大小、速度、角度、坐标等状态都保存起来;load命令是把save保存的状态恢复。

说明:可以多次saveload,类似“括号”匹配,每个load只恢复到最近的一次save状态。

样例for (int i=0; i<6; i++){

        p.fd(150).rt(60);

        if (i>0 && i<4)  p.save().c(10).size(1).lineTo(0,0).load();

}

名称:播放视频

格式:pen.videoL( vId, fname);

videoPlay(vId,left,top,width,

height,loop,volume);

pen.videoStop( vId );

pen.videoPause( vid );

pen.videoGo( vid );

功能videoL把文件名fname的视频文件调入,编号vIdvideoPlay在左上坐标为(left,top)宽为width高为height的窗口内播放vId号视频。loop=0表示只播放一次,lopp>0表示循环播放;volume01的小数,指定音量。

说明 支持3种格式视频。MP4 = MPEG 4文件;WebM = WebM 文件;Ogg = Ogg 文件。缺省也支持mp3等声音文件播放。有停止、暂停、继续命令。

样例 p.videoL(1,"lesson1/mov.mp4");

      p.videoPlay(1,-100,50,300,200,0,0.6);

        wait(10);

名称:获取运行时间

格式:getTime()     

功能:获取程序运行到这里一共花了多少秒。

说明不是pen的命令,格式不能“pen.”开头。返回值类型是浮点数。

样例 pen.speed(3).fd(100).text( getTime() );

名称:获取日期时间

格式:getYear()

getMonth()

getDay()

getHour()

getMinute()

getSecond()

功能getYear, getMonth, getDate, getHour, getMinute, getSecond分别获取当前计算机时间的年、月、日、小时、分钟、秒。

说明不是pen的命令,格式不能“pen.”开头。返回值类型是整数。

样例 pen.text( getYear() );

名称:倒计时

格式:

pen.ctime( s );

pen.ctime(title,s,c,size,x,y);

功能:显示一个倒计时器,s是秒。还可以指定提示字符串、底色、大小、中心位置

说明:用鼠标点击这个倒计时器,中断倒计时,程序继续执行。

样例 pen.ctime( "时间还有:",15,6,50,0,0 );

 

数学

函数

 

名称:随机函数

格式rand()

rand(a,b)

功能:随机函数就像从很065535这些整数中,随机取一个。rand(a,b)是在ab之间随机取一个整数。

说明不是pen的命令,格式不能“pen.”开头。rand(a,b)不是C++函数,相当于a+rand()%(b-a+1)

名称:三角函数

格式sin( a )

cos( a )

功能:就是数学里的正弦函数、余弦函数。参数a的单位是度。

名称:幂函数

格式:pow(a,b)

功能:就是数学里计算ab次方的函数。参数ab是浮点数。

样例 pen.text(pow(2,0.5)).hide();

      

名称:字符串长度

格式strlen( s )

    

功能:求字符串s的长度。

样例pen.text(strlen("abcde"),1).hide();

 

 

附录1

常见字体编号表

字体编号

字体名称

0

Arial

1

Times New Roman

2

微软雅黑

3

仿宋

4

宋体

5

黑体

6

楷体

7

细明体

8

幼圆

9

隶书

10

华文细黑

11

华文楷体

12

华文宋体

13

华文中宋

14

华文仿宋

15

方正舒体

16

方正姚体

17

华文彩云

18

华文琥珀

19

华文隶书

20

华文行楷

21

华文新魏

 

 

附录2

键盘的ASCII码表

字母和数字键的键码值

按键

键码

按键

键码

按键

键码

按键

键码

A

65

J

74

S

83

1

49

B

66

K

75

T

84

2

50

C

67

L

76

U

85

3

51

D

68

M

77

V

86

4

52

E

69

N

78

W

87

5

53

F

70

O

79

X

88

6

54

G

71

P

80

Y

89

7

55

H

72

Q

81

Z

90

8

56

I

73

R

82

0

48

9

57

控制键键码值

按键

键码

按键

键码

按键

键码

 

BackSpace

8

Esc

27

Right Arrow

39

 

Tab

9

Spacebar

32

Down Arrow

40

 

Clear

12

Page Up

33

Insert

45

 

Enter

13

Page Down

34

Delete

46

 

Shift

16

End

35

Num Lock

144

 

Control

17

Home

36

;:

186

 

Alt

18

Left Arrow

37

=+

187

 

Cape Lock

20

Up Arrow

38

,<

188

 

 

 

附录3

WebGoC中命令与以前的2016PC版本有一些新的变化:

1)取消了pen.up()对增强命令的影响,o,oo,e,ee,r,rr等命令总是会画出图形。

2)画椭圆命令pen.e(),pen.ee()的参数与画圆命令的参数一致,改为半径。

3moveline命令改为比较正规的:moveTolineTo

4cin的方式有2种模式,可以改成类似文件的cinWin的窗口模式读入。

5)增加了一些键盘检测函数,为编写交互式的游戏提供了方便。

6)增加了多种显示图片的命令。