GOC指令

网络版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 );

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

说明: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( color );

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

说明:c是color(颜色)的缩写,简称颜色命令;color一般为0到15的整数;第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( );

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

说明:没有参数。抬笔只是影响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); 和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(0);

名称: 清矩形

格式: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);

名称:获取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参数有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下的子目录。

样例

名称:调入设置一张图片

格式:pen.picL( id,fname );

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

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

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

名称:调入设置多张图片

格式

pen.picL( idBeign,idEnd,fnames );

pen.picL( idBeign,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( 1/0 );

功能:执行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.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等命令使用。

说明: 声音文件格式可以是mp3、wav等多种;也有批量调入多个文件格式,具体参数格式可以查看命令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。

说明: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);

名称:键盘输入

格式: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()时如果有按数字键,取出这个数字值(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-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”取消鼠标的光标;还可以自定义光标形状,例如:返回1,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);

功能: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);

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

buttonMI是button 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可以取0或1两种模式,分别表示从笔的位置画一段弧或以笔为圆心画一段弧;c表示颜色。

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

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

}

名称:播放视频

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

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

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

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

名称:三角函数

格式:sin( a )

cos( a )

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

名称:幂函数

格式:pow(a,b)

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

样例 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

B

66

K

75

T

84

C

67

L

76

U

85

D

68

M

77

V

86

E

69

N

78

W

87

F

70

O

79

X

88

G

71

P

80

Y

89

H

72

Q

81

Z

90

I

73

R

82

0

48

控制键键码值

按键

键码

按键

键码

按键

键码

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

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

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

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

3)move、line命令改为比较正规的:moveTo、lineTo。

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/904779.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/904779.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt获取CPU使用率及内存占用大小

Qt 获取 CPU 使用率及内存占用大小 文章目录 Qt 获取 CPU 使用率及内存占用大小一、简介二、关键函数2.1 获取当前运行程序pid2.2 通过pid获取运行时间2.3 通过pid获取内存大小 三、具体实现五、写在最后 ​ 一、简介 近期在使用软件的过程中发现一个有意思的东西。如下所示&a…

期刊论文写作注意点

下面给出关于期刊写作的几个关键注意点 一、摘要突出创新点 最重要的是论文的摘要&#xff0c;因为在论文送审的时候&#xff0c;编辑如果没有时间&#xff0c;最先看的就是摘要。摘要要写好。如果投的是顶刊&#xff0c;在摘要里面尽量不要写是在什么方法的基础上进行改进之类…

Swagger 3.0 中注解详细示例

Swagger 3.0 提供了丰富的注解来详细描述 API 的请求和响应。以下是一个使用 Operation、Parameter、RequestBody 和 ApiResponse 注解的示例&#xff0c;展示了如何设置请求头、请求参数、路径变量、请求体和响应体。代码中未使用 DTO 对象&#xff0c;而是使用 Map 来传递参数…

切比雪夫不等式专题习题解析

切比雪夫不等式专题习题解析 前言 本文为概率论习题集专栏的切比雪夫不等式专题习题解析,针对习题篇中的10道题目提供详细解答。希望通过这些解析帮助大家深入理解切比雪夫不等式的应用和意义。 一、基础概念题解析 习题1解析: 错误。切比雪夫不等式适用于任何具有有限方…

软件测试的概念

需求的概念 开发模型 测试模型 1. 什么是需求 在多数软件公司&#xff0c;会有两部分需求&#xff0c;⼀部分是⽤⼾需求&#xff0c;⼀部分是软件需求。 1.1 ⽤⼾需求 ⽤⼾需求&#xff1a;可以简单理解为甲⽅提出的需求&#xff0c;如果没有甲⽅&#xff0c;那么就是终端⽤⼾…

前端面试每日三题 - Day 29

这是我为准备前端/全栈开发工程师面试整理的第29天每日三题练习&#xff1a; ✅ 题目1&#xff1a;Web Components技术全景解析 核心三要素 Custom Elements&#xff08;自定义元素&#xff09; class MyButton extends HTMLElement {constructor() {super();this.attachShado…

StreamRL:弹性、可扩展、异构的RLHF架构

StreamRL&#xff1a;弹性、可扩展、异构的RLHF架构 大语言模型&#xff08;LLMs&#xff09;的强化学习&#xff08;RL&#xff09;训练正处于快速发展阶段&#xff0c;但现有架构存在诸多问题。本文介绍的StreamRL框架为解决这些难题而来&#xff0c;它通过独特设计提升了训…

LVGL的核心:lv_timer_handler

文章目录 &#x1f9e0; 一句话总结 LVGL 的运行核心&#xff1a;&#x1f501; 1. while(1) 主循环中的 lv_task_handler()⏱️ 2. lv_timer_handler() 定时器调度核心✅ 并发控制✅ 关键行为流程&#xff1a;&#x1f300; 任务执行逻辑&#xff1a;&#x1f9ee; 计算下一次…

【数据机构】2. 线性表之“顺序表”

- 第 96 篇 - Date: 2025 - 05 - 09 Author: 郑龙浩/仟墨 【数据结构 2】 文章目录 数据结构 - 2 -线性表之“顺序表”1 基本概念2 顺序表(一般为数组)① 基本介绍② 分类 (静态与动态)③ 动态顺序表的实现**test.c文件:****SeqList.h文件:****SeqList.c文件:** 数据结构 - 2 …

101 alpha——8 学习

alpha (-1 * rank(((sum(open, 5) * sum(returns, 5)) - delay((sum(open, 5) * sum(returns, 5)),这里我们操作符都明白&#xff0c;现在来看金融意义 金融意义 里层是这个 (sum(open, 5) * sum(returns, 5)) - delay((sum(open, 5) * sum(returns, 5)), 10 这里是两个相减…

auto推导类型原则

auto 是 C11 引入的类型自动推导关键字&#xff0c;它允许编译器根据表达式的类型来推导变量的确切类型。虽然使用 auto 可以让代码更简洁&#xff0c;但理解它的类型推导规则非常关键&#xff0c;尤其是在涉及指针、引用、const、模板等场景时。 ✅ 一、基本推导原则 auto x …

使用智能表格做FMEDA

一、优点 使用智能表格替代excel做FMEDA具备以下优势&#xff1a; 减少维护成本&#xff08;数据库关联&#xff0c;修改方便&#xff09;便于持续优化&#xff08;失效率分布&#xff0c;失效率模型可重复使用&#xff09;多人同步编写&#xff08;同时操作&#xff0c;同步…

IP协议.

IP 协议是互联网的核心协议&#xff0c;工作在网络层。它给网络中的设备分配唯一的 IP 地址&#xff0c;把上层数据封装成数据包&#xff0c;然后根据目的 IP 地址通过路由器等设备进行转发&#xff0c;实现数据在不同网络间的传输。它还能在必要时对数据包进行分片和重组&…

archlinux 详解系统层面

Arch Linux 深度解析&#xff1a;从设计哲学到系统架构 一、Arch Linux 概述&#xff1a;滚动发行的极客之选 Arch Linux 是一款以 滚动更新&#xff08;Rolling Release&#xff09; 为核心特性的 Linux 发行版&#xff0c;强调 轻量、灵活、高度可定制&#xff0c;旨在让用…

HTML8:媒体元素

视频和音频 视频元素 video 音频 audio <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>媒体元素学习</title> </head> <body> <!--音频和视频 src:资源路径 controls:控制条…

SpringBoot3集成Oauth2——1(/oauth2/token方法的升级踩坑)

备注&#xff1a;本文适用于你在SpringBoot2.7以前集成过oauth2&#xff0c;并且项目已经正式投入使用的情况&#xff0c;否则&#xff0c;我建议你直接学习或者找资料学习最新的oauth2集成&#xff0c;就不要纠结于老版本的oauth2。 原因&#xff1a;Spring Security 5.x和Sp…

笔记本电脑实现网线内网 + Wi-Fi外网同时使用的配置方案

1、同时连接两个网络‌ 插入网线连接内网&#xff0c;确保内网IP地址正常获取&#xff08;如10.143.88.x&#xff09;&#xff1b;连接Wi-Fi接入外网&#xff0c;确认可正常访问互联网&#xff08;如网关为192.168.8.1&#xff09;。 2、 记录关键网络参数‌ 内网网关&#…

从韦斯利・卡普洛看北斗星咨询公司的技术咨询引领之路

在科技与商业深度交融的时代&#xff0c;技术咨询公司扮演着举足轻重的角色&#xff0c;它们宛如连接技术创新与企业实际需求的桥梁&#xff0c;助力企业在复杂多变的市场环境中找准技术发展方向&#xff0c;实现可持续增长。《对话 CTO&#xff0c;驾驭高科技浪潮》的第 5 章聚…

首版次软件测试的内容有哪些?首版次软件质量影响因素是什么?

首版次软件测试不仅是简单的“找错”&#xff0c;更是系统地验证和评估软件各项功能和性能指标是否符合设计标准。 一、首版次软件测试常见的测试内容   1.功能测试&#xff1a;对照需求文档&#xff0c;确认功能模块是否按预期实现&#xff0c;用户操作流程是否顺畅。   …

从零开始的python学习(六)P86+P87+P88

本文章记录观看B站python教程学习笔记和实践感悟&#xff0c;视频链接&#xff1a;【花了2万多买的Python教程全套&#xff0c;现在分享给大家&#xff0c;入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p6&share_sourcecopy_web&v…