命令分类目录
| 基本画图命令 | fd, bk, lt, rt |
| 设置笔状态命令 | color, c, rgb, size, up, down |
| 状态命令 | show, hide, speed, showXY, wait, pause, cls, clsRec |
| 增强画图命令 | o, oo, e, ee, r, rr |
| 坐标命令 | moveTo, lineTo, getX, getY, getAngle, setX, setY setAngle |
| 文字命令 | text, precision, textSize, font, textU, d2s |
| 图片命令 | setPath, picL, pic, picO, picU, cav, ani |
| 图层命令 | cav, cavCls, cavShow, cavHide, cavWiden |
| 声音命令 | soundL, sound, soundLoop, soundVol, soundPause, soundStop, videoL, videoPlay, videoStop, videoPause, videoGo |
| 输入输出命令 | cin, cinTitle, cinWin, cout |
| 键盘检测命令 | getKey, getDigit, waitKey, getDownKey |
| 鼠标检测命令 | waitMouse, mouseDown, getMX, getMY, getMDX, getMDY, mouseIn, cursor |
| 设置按钮命令 | button, buttonMP, buttonMI |
| 新版增加命令 | alp, a, aa, ch, drawH, polXY, pol,cap, save, load, videoPlay, getC, fill |
| 数学函数 | abs, floor, ceil, sqrt, srand, rand, sin, cos, atan2, pow, strlen |
| 时间函数 | getYear, getMonth, getDay, getHour, getMinute, getSecond, getDate, getTime, ctime |
附录
常见字体编号表 键盘的ASCII码表 控制键键码值
命令说明表格
| pen.fd( length ); | 名称:前进 功能:笔向前移动指定长度,以当前颜色画一条直线。 说明:fd 是 forward(前进)的缩写;length 可为整数或小数。 样例:pen.fd( 50 );
|
| pen.bk( length ); | 名称:后退 功能:笔向后移动指定长度,以当前颜色画一条直线。 说明:bk是back(后退)的缩写;length可为整数或小数。 样例:pen.bk( 80 );
|
| pen.rt( angle ); | 名称:顺时针旋转 功能:笔的方向在当前位置和方向顺时针旋转指定角度,一周是360度。 说明:rt是right(向右)的缩写,所以也称为右转命令;angle可为整数或小数。 样例:pen.rt( 60 );
|
| pen.lt( angle ); | 名称:逆时针旋转 功能:笔的方向在当前位置逆时针旋转指定角度,一周是360度。 说明:lt是left(向左)的缩写,所以也称为左转命令;angle可为整数或小数。 样例:pen.lt( 60 );
|
| pen.c( colorId ); 或 pen.color( colorId ) | 名称:设置颜色 功能:设置笔的颜色为指定颜色,以后笔将使用这个颜色画图。颜色有16种,编号0到15。 说明:c是color(颜色)的缩写,简称颜色命令;colorId一般为0到15的整数;第16号颜色是pen.rgb()设置的颜色。 样例:pen.c( 1 ); pen.fd( 80 );
|
| pen.rgb(r, g, b ); | 名称:设置RGB颜色 功能:设置第16号颜色为指定的RGB格式定义的颜色。 说明:第16号颜色默认是淡绿色。可以设置一百多万种颜色。 样例:p.rgb(166,254,167).c(16).oo(50);
|
| pen.size( width ); | 名称:设置粗细 功能:设置笔的粗细为指定宽度,以后笔将使用这个宽度画图。 说明:size的意思是大小,所以简称大小命令。宽度width的值为正整数,初始大小为4。 样例:pen.size( 1 ). fd( 100 ); 和 pen.size( 8 ). fd( 100 );
|
| pen.up( ); | 名称:抬笔 功能:把笔抬起悬空(阴影表示),以后笔移动时不会画出直线。 说明:没有参数。抬笔只是影响fd和lineTo命令,对画圆、椭圆、矩形等命令没有影响。 样例: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最快。 说明:速度值 v为1到10的数值。speed配合show命令可以方便调试程序,演示绘图过程。 |
| pen.showXY(len,color,size ); | 名称:画坐标 功能:显示一个简单的网格线坐标。网格线间隔距离len,网格线颜色color号,网格线粗细size。 说明:showXY绘制坐标到画布上,与面板的“坐标”按钮无关。 样例:pen.showXY(100,1,1); 和pen.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度)。 说明:cls是clearScreen(清除屏幕)的缩写。 样例:p.cls(); |
| pen.clsRec( w, h ); pen.clsRec( ); | 名称:清矩形 功能:对笔位置为中心的矩形区域清除颜色(变成无色透明),w为宽,h为高。 说明:clsRec是clearRectangular (清除矩形)的缩写,没有参数的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);
|
| getX( ); | 名称:获取X坐标 功能:获得笔当前位置的X坐标值,并返回这个值。 说明:getX( )没有参数,但会返回X坐标值,是函数型命令。格式可以不用“pen.”开头。 样例:p.rt(60).fd(200).text(getX(),1);
|
| getY( ); | 名称:获取Y坐标 功能:获得笔当前位置的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.setX( posx ); | 名称:移动到X坐标的posx位置。 功能:移动笔位置的X坐标到posx位置。 说明:与moveTo()类似。 样例:p.o(100).setX(-100).oo(20,1).setX(100).oo(20,1).hide();
|
| pen.setY( posy ); | 名称:移动到Y坐标的posy位置。 功能:移动笔位置的Y坐标到posy位置。 说明:与moveTo()类似。 样例:p.o(100).setY(-100).oo(20,1).setY(100).oo(20,1).hide();
|
| 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.textU(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参数有1、2、3、4、6、7个六种格式。 样例:pen. text("GoC程序",11,50,45);
|
| pen.textU( 0/1 ); | 名称:设置字体方向 功能:执行pen.textU(1),设置文字的方向始终向上;执行pen.textU(0),设置文字的方向随笔的方向旋转。(U是up的意思)。 说明:默认文字方向是始终朝上的。有角度参数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下的子目录。 样例: int main() { setPath("lessonl"); p.picL(1,"round.png"); p.pic(1); return 0; }
|
| pen.picL( id,fname ); | 名称:调入设置一张图片 功能:把文件名为fname的图片调入,并设置对应为编号id,供后面显示图片pic等命令使用。(L表示load) 说明:图片格式可以是png、bmp、jpg等多种; 调入图片文件比较“费时间”,通常在程序开头就完成picL命令。 样例:p.picL(1,"bird.png"); |
| pen.picL( idBegin,idEnd,fnames ); pen.picL( idBegin,idEnd,fname,sBegin ); | 名称:调入设置多张图片 功能:设一次调入多张图片,并设置对应为编号idBegin到idEnd,供后面显示图片pic等命令使用。 说明:参考” 调入设置一张图片”命令。 第1种命令格式中的idBegin是id的开始编号,idEnd是id的结束编号。fnames是多个图形文件名的字符串,文件名中间用”,”隔开。 第2种命令格式中的sBegin是图片文件的开始编号,图片文件名格式为:文件名+编号+.+后缀。 样例1:pen.picL(0,2,"car.png,pen.png,tree.png"); 这个命令相当于: pen.picL(0,"car.png").picL(1,"pen.png").picL(2,"tree.png"); 样例2:pen.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坐标。 说明:默认的,笔的位置是图片的中心位置,显示时图片向上,如样例所示。可以参看picO和picUp命令来修改默认项。 样例: 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( 0/1 ); | 名称:设置图片方向 功能:执行pen.picU(1),设置图片的方向始终向上;执行pen.picU(0),设置的图片方向不是一直向上,而是按照笔的方向显示。(U是up的意思) 说明:默认图片方向是始终朝上的。 样例: p.picL(1,"bird.png").picU(0); for (int i=0; i<6; i++) p.fd(150) .pic(1).bk(150).rt(60);
|
| pen.ani(cavId, picId ); pen.ani(cavId, picId, w, h); pen.ani(cavId,picId,w,h,angle,x,y); | 名称:动画图片 功能:与pic命令类似,但每次显示图片时,会自动清除画布上所有图形。cavId指定在第几层画布上显示,具体参见cav命令;picId为图形编号,具体参见picL命令。有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.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.cavCls(i); pen.cavShow(i); pen.cavHide(i); | 名称:清除、隐藏、显示层 功能:对第i层画布单独操作:清除、隐藏、显示。 说明:在做动画时,这些命令有时很有用。可以事先在一个层上画好下一幅图,再切换显示,达到平滑效果。 样例: p.cavHide(0); |
| pen.cavWiden(); | 名称:改变画布宽度 功能:使画布变成宽屏,分辨率变为为1200*900。该命令主要是制作演示、动画作品时使用。 要注意的是调⽤这个命令时画布会被重新初始化。 样例: p.cavWiden(); p.e(600,450);
|
| pen.soundL(id, fname); pen.soundL( idBegin,idEnd,fnames ); pen.soundL( idBegin,idEnd,fname,sBegin ); | 名称:调入声音文件 功能:和把图片文件调入命令picL相似,要播放声音也需要先把声音文件调入并设置对应为编号id,供后面播放声音sound等命令使用。 说明:声音文件格式可以是mp3、wav等多种;也有批量调入多个文件格式,具体参数格式可以查看命令picL的说明;文件位置也受setPath命令影响。 调入声音文件加载较慢,通常在程序开头预先完成soundL命令。 样例:p.soundL(1,"pub_sound/rub.mp3"); |
| pen.sound(id); | 名称:播放声音 功能:播放编号为id的声音。 说明:只播放一次。程序结束时所有声音停止。 样例:p.soundL(1,"pub_sound/rub.mp3").sound(1);wait(5); |
| pen.soundLoop(id); | 名称:循环播放声音 功能:循环播放编号为id的声音。 说明:如果再执行sound( id ),编号id的就会解除循环。 样例: p.soundL(1,"pub_sound/rub.mp3").soundLoop(1);wait(10); |
| pen.soundVol(id, v ); | 名称:设置音量大小 功能:设置编号为id的声音的音量为v。 说明:v是1到0之间的小数,默认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号声音,会从头开始重新播放。没有指定id的soundStop()命令,将会停止所有声音播放。 样例: p.soundStop(1); |
| pen.videoL( vId, fname); pen.videoPlay(vId,left,top,width,height,loop,volume); pen.videoStop( vId ); pen.videoPause( vid ); pen.videoGo( vid ); | 名称:播放视频 功能:videoL把文件名fname的视频文件调入,编号vId。videoPlay在左上坐标为(left,top)宽为width高为height的窗口内播放vId号视频。loop=0表示只播放一次,lopp>0表示循环播放;volume为0到1的小数,指定音量。 说明:支持3种格式视频。MP4 = MPEG 4文件;WebM = WebM 文件;Ogg = Ogg 文件。缺省也支持mp3等声音文件播放。有停止、暂停、继续命令。 样例: p.hide().videoL(1,"pub_video/mov.mp4"); p.videoPlay(1,-200,300,500,300,0,0.6); wait(12);
|
| 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; 浮点数设置精度为n可用cout << setprecision( n); 默认精度是6; 切换成以定点数输出、以科学计数法输出、以默认方式输出浮点数分别可用cout << fixed; cout << scientific; cout << defaultfloat。 不是pen的命令,格式不能“pen.”开头。 样例:cout << "面积=" <<12*5;
|
| getKey() | 名称:获取按键的码值 功能:这是一个获取键盘输入码的函数,可以取得按键的键码值(具体参见附录2)。是函数型命令。程序执行getKey()时如果有按键,取出这个键的码值,并返回。如果没有按键,返回值为0。 说明:不是pen的命令,格式不能“pen.”开头。几个特殊的键码值:空格—32, 回车—13,左箭头—37,上箭头–38, 右箭头—39, 下箭头—40 样例:一个用上下左右键画图的小程序。 int main() { for(;;) { int k=getKey(); if(k==37) p.lt(10); if(k==38) p.fd(10); if(k==39) p.rt(10); if(k==40) p.bk(10); } return 0; } |
| waitKey(); | 名称:暂停,等按键继续 功能:当程序执行到这个语句时,程序暂停运行,等待用户按任意键继续执行程序。 说明:不是pen的命令,格式不能“pen.”开头。 waitKey()清除以前的按键纪录,并等待按键;键后的值保存到按键纪录里。如果后面使用getKey()、getDigit()等命令,可以取到这个按键值。 样例 p.speed(3); for (;;){ waitKey(); char k = getKey(); if (k=='R') p.c(1); else if (k=='B') p.c(2); else if (k==39) p.rt(3).fd(3); else if (k==37) p.lt(3).fd(3); }
|
| clearKey(); | 名称:清除键盘输⼊的缓冲区 功能:当执行到这个语句时,清除键盘输⼊的缓冲区。 说明:不是pen的命令,格式不能“pen.”开头。 与waitKey不同,clearKey能保持程序连续运行。 样例 p.speed(2); for (;;){ char k = getKey(); if (k==39) p.rt(3).fd(3); else if (k==37) p.lt(3).fd(3); else p.fd(1); if (k!=0) clearKey(); }
|
| getDigit() | 名称:获取按数字键的值 功能:与getKey()函数不同,程序执行getDigit()时如果有按数字键,取出这个数字值(0到9),并返回。如果没有按数字键,返回值为-1。是函数型命令。 说明:不是pen的命令,格式不能“pen.”开头。 返回值是0到9的整数,或-1。 在只检测按键是数字键时,getDigit()函数比getKey()函数方便使用。 |
| getDownKey() | 名称:获取正按下键的码值 功能:与getKey()函数不同,程序执行getDownKey()时,如果这时正在按键,才取出码值,并返回。否则返回值为0。是函数型命令。 说明:不是pen的命令,格式不能“pen.”开头。 getKey()、getDigit()会取键盘纪录(缓冲区)里的键值,而getDownKey()只看“眼前”是否按键,有细微的区别。 |
| waitMouse(); | 名称:暂停,等待鼠标按键 功能:当程序执行到这个语句时,程序暂停运行,等待用户按鼠标左键后继续执行程序。 说明:不是pen的命令,格式不能“pen.”开头。 一般后面配合使用getMDX()、getMDY)等命令,可以取到鼠标按键时的坐标。 |
| getMX() getMY() | 名称:获取鼠标坐标值 功能:getMX()是get mouse X-coordinate的简写,是获取当前鼠标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 ); | 名称:改变光标形状 功能:设置光标(鼠标)的形状。 参数常见的有:default | crosshair | move | help | wait | text | w-resize |s-resize |ne-resize |nw-resize |pointer|等。对应的图形:
说明:不是pen的命令,格式不能“pen.”开头。 ”none”取消鼠标的光标;还可以自定义光标形状,例如:cursor("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); | 名称:显示一个按钮 功能:button命令生成一个编号是id的按钮,按钮上的文字为string字符串,col指定了文字的颜色,size指定了文字的大小,dir是方向,坐标(x,y)是文字的中心位置,bgcol为按钮背景色,edgecol是边框颜色。 说明:如果是简单格式的button(id,string,col,size);就在pen当前位置显示文字。缺省的bgcol为白色,缺省edgecol为灰色。 样例:pen.button(1,"确认按钮",0,30,20,100,200,5,3);
|
| buttonMP(id); | 名称:鼠标点击按钮 功能:buttonMP是buton mouse press的简写,buttonMP(id)是判断鼠标是否在点击编号为id的按钮,是返回1,否则返回0。 说明:不是pen的命令,格式不能“pen.”开头。 通常使用buttonMP函数配合button来简单实现判断点击按钮功能。 样例: p.c(1).rt(90); p.button(1,"点这里画黑色点",02,23,0,0,60,5); for (;;){ if ( buttonMP(1)) p.oo(10,0); p.fd(1).rt(1); }
|
| buttonMI(id); | 名称:鼠标是否滑动到按钮上 功能:buttonMI是button mouse in的简写,buttonMI(id)是判断鼠标位置是否在编号为id的按钮内,在按钮内返回1,否则返回0。 说明:不是pen的命令,格式不能“pen.”开头。 通常使用buttonMI函数配合button来简单实现判断点击按钮功能。 样例: p.c(1).rt(90); p.button(2,"移动到这里画绿点",10,23,90,-120,-50,4); for (;;){ 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可以取0或1两种模式,分别表示从笔的位置画一段弧或以笔为圆心画一段弧;c表示颜色。 说明:颜色c缺省时,以笔的颜色画;aa画一段实心扇形;画弧和画圆一样,笔的位置不变。如果picU(0);方向会随笔头。 样例1:p.a(100,90,0);
样例2:p.a(100,90,1,3);
样例3:p.aa(100,180,0,3).a(100,90,0,0);
|
| pen.CH ( id ); | 名称:换笔头 功能:把笔头显示换成编号id(由picL调入并设置图片)的图形。(c是change、h是head意思) 说明:这个命令可以方便快速制作简单的动画;笔头显示在所有画布的上方;可以使用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种不同模式,对应mod取0,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保存的状态恢复。 说明:可以多次save和load,类似“括号”匹配,每个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(); }
|
| getC(x,y); getC(x,y,cavId); |
名称:取颜色 功能:取一点的颜色和透明度,返回一个整数(透明度+RGB,4个字节)。getC(x,y)可看到的最上层颜色;getC(x,y,cavId)—指定层(-1/0/1)的颜色。 说明:不是pen的命令,格式不能“pen.”开头。函数返回一个整数。如果要知道RGB的值,可以解析返回结果,但边界颜色确实是有误差的。 样例:下面程序是打靶小游戏,使用点击到的颜色判断给分。
int main() } |
|
pen.fill(colorId); pen.fill(colorId,dx,dy); pen.fill(colorId,dx=0,dy=0,tolerance=0); |
名称:填充颜色 功能:以当前笔的位置作为开始点,对一片相同颜色区域染色。如果原来点没有颜色就对一片空区域染色。类似绘图中的“油漆桶”功能。 说明:colorId是颜色编号,dx和dy是与笔位置的横纵坐标的偏移量,最后一个参数表示颜色rgb的欧式距离阈值,用来判定颜色是否相等。 样例:下面程序是对3个相交圆的各部分填充颜色。
|
| abs( x ) | 名称:绝对值函数 功能:当x>=0时,abs(x)函数返回x;当x<0时,abs(x)函数返回-x。 说明:简单的说就是把负数变成正数,x是int和double类型都可以。类似C++函数。根据x类型,返回值类型是整数或浮点数。 样例:pen.text(abs(10-33)).hide();
|
| floor( d ) | 名称:向下取整函数/地板函数 功能:对浮点数d向下取整。 说明:返回值类型是整数。 样例:cout << floor(12.6) <<":" << floor(-12.3) << endl; 输出结果: 12:-13 |
| ceil( d ) | 名称:向上取整函数/天花板函数 功能:对浮点数d向上取整。 说明:返回值类型是整数。 样例:cout << ceil(12.5) <<":" << ceil(-12.5) << endl; 输出结果: 13:-12 |
| sqrt( x ) | 名称:平方根函数 功能:sqrt(x)函数返回x的平方根。 说明:x是int和double类型都可以,但x需要保证>=0。类似C++函数。返回值类型是浮点数。 样例:pen.text(sqrt(2)).hide();
|
| rand() rand(a,b) | 名称:随机函数 功能:随机函数就像从很0到65535这些整数中,随机取一个。rand(a,b)是在a到b之间随机取一个整数。 说明:rand(a,b) 相当于C++的 a+rand()%(b-a+1)。返回值类型是整数。 样例:pen.text(rand(3,9)).hide();
|
| srand( x ) | 名称:随机种子函数 功能:srand( x )是设置一个随机种子,使得产生的随机数序列按照这个种子发生。 设置相同的种子, 随机数序列将相同;相反不设置种子时,每次产生的随机数序列会不同。 说明:以后在题目中设置指定的相同随机种子,可以实现随机函数的评测题目进行对比测试。 样例: int t; cin>>t; srand(t); p.speed(9).up(); for (int i=0; i<30; i++) p.c(rand(0,7)).fd(60+i*5).rt(45).text( rand(3,15)); |
| sin( a ) cos( a ) | 名称:三角函数 功能:就是数学里的正弦函数、余弦函数。 说明:参数a的单位是度,不同于C++函数参数的单位是弧度。 样例:pen.text(sin(50,100)).hide();
|
| atan2(y,x) | 名称:反三角函数 功能:atan2(y,x)是知道一个直角三角形的两个直角边,求夹角度数的函数。 说明:返回的单位是度,不同于C++函数返回的单位是弧度。 样例:pen.text(atan2(100,100)).hide();
|
| pow(a,b) | 名称:幂函数 功能:就是数学里计算a的b次方的函数。参数a、b是浮点数。 说明:类似C++函数。返回值类型是浮点数。 样例:pen.text(pow(2,0.5)).hide();
|
| strlen( s ) | 名称:字符串长度 功能:求字符串s的长度。 说明:类似于C的函数strlen。返回值类型是整数。 样例:pen.text(strlen("abcde"),1).hide();
|
| getYear() getMonth() getDay() getHour() getMinute() getSecond() | 名称:获取日期时间 功能:getYear, getMonth, getDay, getHour, getMinute, getSecond分别获取当前计算机时间的年、月、日、小时、分钟、秒。 说明:不是pen的命令,格式不能“pen.”开头。返回值类型是整数。 样例: pen.text( getYear() );
|
| getDate(i) | 名称:通用获取时间函数 功能:i等于1,2,3,…8时分别返回年、⽉、⽇、时、分、秒、毫秒和Unix时间 戳(毫秒级) 说明:函数名字不太好,取日期尽量使用前面函数,需要毫秒时才使用。 样例:for (int i=1; i<9; i++) cout << i<<":" << getDate(i) << endl;
|
| getTime() | 名称:获取运行时间 功能:获取程序运行到这里一共花了多少秒。 说明:不是pen的命令,格式不能“pen.”开头。返回值类型是浮点数。 样例1:pen.speed(3).fd(100).text( getTime() );
|
| pen.ctime( s ); pen.ctime(title,s,c,size,x,y); | 名称:倒计时 功能:显示一个倒计时器,s是秒。还可以指定提示字符串、底色、大小、中心位置 说明:用鼠标点击这个倒计时器,中断倒计时,程序继续执行。 样例: pen.ctime( "时间还有:",15,6,50,0,0 );
|
附录1:
常见字体编号表

附录2:
键盘的ASCII码表

附录3:
控制键键码值

选自命令说明表格
https://www.51goc.com/goc-ide/cmd-manual/gocComList.html#section1
注:WebGoC现有老版本(https://v1.51goc.com)和新版本(https://top.51goc.com)
老版本中可能有部分指令无法运行
说GoC能安装的都是假的,不要信
























































