ImageVerifierCode 换一换
格式:DOCX , 页数:65 ,大小:43.64KB ,
资源ID:7906980      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7906980.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Easy指导手册.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Easy指导手册.docx

1、Easy指导手册EasyX指导手册制作人:jianxiawzx一、基本概念1.1颜色EasyX使用24bit真彩色,不再支持调色板模式。表示颜色有以下几种办法:1.用预定义颜色常量,如下:常量值颜色常量值颜色BLACK0黑DARKGRAY0x545454深灰BLUE0xA80000蓝LIGHTBLUE0xFC5454亮蓝GREEN0x00A800绿LIGHTGREEN0x54FC54亮绿CYAN0xA8A800青LIGHTCYAN0xFCFC54亮青RED0x0000A8红LIGHTRED0x5454FC亮红MAGENTA0xA800A8紫LIGHTMAGENTA0xFC54FC亮紫BROWN

2、0x0054A8棕YELLOW0x54FCFC黄LIGHTGRAY0xA8A8A8浅灰WHITE0xFCFCFC白2.用16进制的颜色表示,形式为:0xbbggrr(bb=蓝,gg=绿,rr=红)3.用RGB宏合成颜色。详见RGB。4.用HSLtoRGB、HSVtoRGB转换其他色彩模型到RGB颜色。详见HSLtoRGB、HSVtoRGB。示例:以下是部分设置前景色的方法:setcolor(0xff0000);setcolor(BLUE);setcolor(RGB(0,0,255);setcolor(HSLtoRGB(240,1,0.5);1.2坐标在EasyX中,坐标分两种:逻辑坐标和物理坐

3、标。逻辑坐标逻辑坐标是在程序中用于绘图的坐标体系。坐标默认的原点在屏幕的左上角,X轴向右为正,Y轴向下为正,度量单位是象素。坐标原点可以通过setorigin()函数修改;坐标轴方向可以通过setaspectratio()函数修改;缩放比例可以通过setaspectratio()函数修改。在本手册中,凡是没有注明的坐标,均指逻辑坐标。物理坐标物理坐标是描述设备的坐标体系。坐标原点在屏幕的左上角,X轴向右为正,Y轴向下为正,度量单位是象素。坐标原点、坐标轴方向、缩放比例都不能改变。1.3设备所谓“设备”,简单来说,就是绘图表面。在EasyX中,设备分两种,一种是默认的绘图窗口,另一种是IMAGE

4、对象。通过SetWorkingImage()函数可以设置当前用于绘图的设备。设置当前用于绘图的设备后,所有的绘图函数都会绘制在该设备上。二、绘图函2.1.1clearcliprgn这个函数用于清空裁剪区的屏幕内容。voidclearcliprgn();2.1.2cleardevice这个函数用于清除屏幕内容。具体的,是用当前背景色清空屏幕,并将当前点移至(0,0)。voidcleardevice();2.1.3closegraph这个函数用于关闭图形环境。voidclosegraph();2.1.4getaspectratio这个函数用于获取当前缩放因子。voidgetaspectratio(

5、float*pxasp,float*pyasp);参数:pxasp返回x方向上的缩放因子。pyasp返回y方向上的缩放因子。2.1.5GetHWnd这个函数用于获取绘图窗口句柄。HWNDGetHWnd();在Windows下,句柄是一个窗口的标识,得到句柄后,可以使用WindowsSDK中的各种命令实现对窗口的控制。示例:/获得窗口句柄HWNDhWnd=GetHWnd();/使用API函数修改窗口名称SetWindowText(hWnd,Hello!);2.1.6graphdefaults这个函数用于重置视图、当前点、绘图色、背景色、线形、填充类型、字体为默认值。voidgraphdefaul

6、ts();2.1.7initgraph这个函数用于初始化绘图环境。HWNDinitgraph(intWidth,intHeight,intFlag=NULL);参数:Width绘图环境的宽度。Height绘图环境的高度。Style绘图环境的样式,默认为NULL。可为以下值:值含义SHOWCONSOLE表示可以保留原控制台窗口。2.1.8setaspectratio这个函数用于设置当前缩放因子。voidsetaspectratio(floatxasp,floatyasp);参数:Xaspx方向上的缩放因子。例如绘制宽度为100的矩形,实际的绘制宽度为100*xasp。Yaspy方向上的缩放因子。

7、例如绘制高度为100的矩形,实际的绘制高度为100*yasp。说明:如果缩放因子为负,可以实现坐标轴的翻转。例如,执行setaspectratio(1,-1);后,可使y轴向上为正。2.1.9setcliprgn这个函数用于设置当前绘图设备的裁剪区。voidsetcliprgn(HRGNhrgn);参数:hrgn区域的句柄。创建区域所使用的坐标为物理坐标。如果该值为NULL,表示取消之前设置的裁剪区。说明:HRGN是Windows定义的表示区域的句柄。将该区域设置为裁剪区后,任何区域外的绘图都将无效(但仍然可以通过操作显存在裁剪区外绘图)。可以使用WindowsGDI函数创建一个区域。例如,创

8、建矩形区域可以使用函数:HRGNCreateRectRgn(intleft,inttop,intright,intbottom);此外,还可以使用函数CreateEllipticRgn创建椭圆形的区域,使用CreatePolygonRgn创建多边形的区域等等。还可以使用CombineRgn组合区域。更多关于区域的GDI函数,请参考MSDN中的RegionFunctions。注意:创建区域后,如果不再使用,请执行DeleteObject(HRGNhrgn)以释放该区域对应的系统资源。示例:以下代码用于创建一个矩形裁剪区,并在该裁剪区内画圆,请观察裁剪效果:#include#includevoid

9、main()/初始化绘图窗口initgraph(640,480);/创建一个矩形区域HRGNrgn=CreateRectRgn(100,100,200,200);/将该矩形区域设置为裁剪区setcliprgn(rgn);/不再使用rgn,清理rgn占用的系统资源DeleteObject(rgn);/画圆,受裁剪区影响,只显示出四段圆弧circle(150,150,55);/取消之前设置的裁剪区setcliprgn(NULL);/画圆,不再受裁剪区影响,显示出一个完整的圆circle(150,150,60);/按任意键退出getch();closegraph();2.1.10setorigin这

10、个函数用于设置坐标原点。voidsetorigin(intx,inty);x原点的x坐标(使用物理坐标)。y原点的y坐标(使用物理坐标)。2.2颜色表示及相关函数2.2.1相关函数和数据如下:函数或数据描述getbkcolor获取当前绘图背景色。getcolor获取当前绘图前景色GetBValue返回指定颜色中的蓝色值。GetGValue返回指定颜色中的绿色值。GetRValue返回指定颜色中的红色值。HSLtoRGB转换HSL颜色为RGB颜色。HSVtoRGB转换HSV颜色为RGB颜色。RGB通过红、绿、蓝颜色分量合成颜色。RGBtoGRAY转换RGB颜色为灰度颜色。RGBtoHSL转换RG

11、B颜色为HSL颜色。RGBtoHSV转换RGB颜色为HSV颜色。setbkcolor设置当前绘图背景色。setcolor设置当前绘图前景色。BGR交换颜色中的红色和蓝色。2.2.2BGRBGR宏用于交换颜色中的红色和蓝色。COLORREFBGR(COLORREFcolor);参数:color需要交换红色和蓝色的颜色。返回值:返回交换红色和蓝色后的颜色。说明:颜色在内存中的表示形式为:0xbbggrr(bb=蓝,gg=绿,rr=红),但是显存中的颜色表现形式为0xrrggbb。注意,两者的红色和蓝色是相反的。直接操作显存时,可以通过BGR宏交换颜色的红色和蓝色部分。2.2.3getbkcolor

12、这个函数用于获取当前绘图背景色。COLORREFgetbkcolor();2.2.4GetBValueGetBValue宏用于返回指定颜色中的蓝色值。BYTEGetBValue(COLORREFrgb);参数:rgb指定的颜色。返回值:指定颜色中的蓝色值,值的范围0255。说明:GetBValue宏在WindowsSDK中定义。2.2.5getcolor这个函数用于获取当前绘图前景色COLORREFgetcolor();2.2.6GetGValueGetGValue宏用于返回指定颜色中的绿色值。BYTEGetGValue(COLORREFrgb);参数:rgb指定的颜色。返回值:指定颜色中的绿

13、色值,值的范围0255。说明:GetGValue宏在WindowsSDK中定义。2.2.7GetRValueGetRValue宏用于返回指定颜色中的红色值。BYTEGetRValue(COLORREFrgb);参数:rgb指定的颜色。返回值:指定颜色中的红色值,值的范围0255。说明:GetRValue宏在WindowsSDK中定义。2.2.8HSLtoRGB该函数用于转换HSL颜色为RGB颜色。COLORREFHSLtoRGB(floatH,floatS,floatL);参数:H原HSL颜色模型的Hue(色相)分量,0=H360。S原HSL颜色模型的Saturation(饱和度)分量,0=S

14、=1。L原HSL颜色模型的Lightness(亮度)分量,0=L=1。返回值:对应的RGB颜色。说明:HSL又称HLS。HSL的颜色模型如图所示:H是英文Hue的首字母,表示色相,即组成可见光谱的单色。红色在0度,绿色在120度,蓝色在240度,以此方向过渡。S是英文Saturation的首字母,表示饱和度,等于0时为灰色。在最大饱和度1时,具有最纯的色光。L是英文Lightness的首字母,表示亮度,等于0时为黑色,等于0.5时是色彩最鲜明的状态,等于1时为白色。示例:请参见示例程序中的“彩虹”。2.2.9HSVtoRGB该函数用于转换HSV颜色为RGB颜色。COLORREFHSVtoRGB

15、(floatH,floatS,floatV);参数:H原HSV颜色模型的Hue(色相)分量,0=H360。S原HSV颜色模型的Saturation(饱和度)分量,0=S=1。V原HSV颜色模型的Value(明度)分量,0=V=1。返回值:对应的RGB颜色。说明:HSV又称HSB。HSV的颜色模型如图所示:H是英文Hue的首字母,表示色相,即组成可见光谱的单色。红色在0度,绿色在120度,蓝色在240度,以此方向过渡。S是英文Saturation的首字母,表示饱和度,等于0时为灰色。在最大饱和度1时,每一色相具有最纯的色光。V是英文Value的首字母,表示明度,等于0时为黑色,在最大明度1时,是

16、色彩最鲜明的状态。示例:HSV颜色模型类似于HSL,示例程序中的“彩虹”是HSL模型的操作范例,可以参考。2.2.10RGBRGB宏用于通过红、绿、蓝颜色分量合成颜色。COLORREFRGB(BYTEbyRed,/颜色的红色部分BYTEbyGreen,/颜色的绿色部分BYTEbyBlue/颜色的蓝色部分);参数:byRed颜色的红色部分,取值范围:0255。byGreen颜色的绿色部分,取值范围:0255。byBlue颜色的蓝色部分,取值范围:0255。返回值:返回合成的颜色。说明:可以通过GetRValue、GetGValue、GetBValue宏从颜色中分离出红、绿、蓝颜色分量。注:RGB

17、宏在WindowsSDK中定义。2.2.11RGBtoGRAY该函数用于返回与指定颜色对应的灰度值颜色。COLORREFRGBtoGRAY(COLORREFrgb);参数:rgb原RGB颜色。2.2.12RGBtoHSL该函数用于转换RGB颜色为HSL颜色。voidRGBtoHSL(COLORREFrgb,float*H,float*S,float*L);参数:rgb原RGB颜色。H用于返回HSL颜色模型的Hue(色相)分量,0=H360。S用于返回HSL颜色模型的Saturation(饱和度)分量,0=S=1。L用于返回HSL颜色模型的Lightness(亮度)分量,0=L=1。说明:HSL

18、详见HSLtoRGB。2.2.13RGBtoHSV该函数用于转换RGB颜色为HSV颜色。voidRGBtoHSV(COLORREFrgb,float*H,float*S,float*V);参数:rgb原RGB颜色。H用于返回HSV颜色模型的Hue(色相)分量,0=H360。S用于返回HSV颜色模型的Saturation(饱和度)分量,0=S=1。V用于返回HSV颜色模型的Value(明度)分量,0=V=1。2.2.14setbkcolor这个函数用于设置当前绘图背景色。voidsetbkcolor(COLORREFcolor);参数:color指定要设置的背景颜色。说明:“背景色”是调色板绘图

19、模式下的概念,所谓的背景色,是调色板中编号为0的颜色,可以通过修改编号0的颜色达到随时修改背景色的目的。在调色板模式下,显存中保存的是每种颜色在调色板中的编号。在EasyX中,已经废弃了调色板模式。真彩色绘图模式下没有调色板,显存中直接保存每个点的颜色,没有背景色的概念。EasyX采用真彩色绘图模式,同时使用背景色,目的有两个:1.当文字背景不是透明时,指定文字的背景色。2.执行cleardevice()或clearcliprgn()时,使用该颜色清空屏幕或裁剪区。示例:以下示例实现在蓝色背景下绘制红色的矩形:#include#includevoidmain()/初始化绘图窗口initgrap

20、h(640,480);/设置背景色为蓝色setbkcolor(BLUE);/用背景色清空屏幕cleardevice();/设置绘图色为红色setcolor(RED);/画矩形rectangle(100,100,300,300);/按任意键退出getch();closegraph();2.2.15setcolor这个函数用于设置当前绘图前景色。voidsetcolor(COLORREFcolor);参数:color要设置的前景颜色。2.3绘制图形相关函数22.3.2arc这个函数用于画椭圆弧。voidarc(intleft,inttop,intright,intbottom,doublestan

21、gle,doubleendangle);参数:left圆弧所在椭圆的外切矩形的左上角x坐标。top圆弧所在椭圆的外切矩形的左上角y坐标。right圆弧所在椭圆的外切矩形的右下角x坐标。bottom圆弧所在椭圆的外切矩形的右下角y坐标。stangle圆弧的起始角的弧度。endangle圆弧的终止角的弧度。2.3.3bar这个函数用于画无边框填充矩形。voidbar(intleft,inttop,intright,intbottom);参数:left矩形左部x坐标。top矩形上部y坐标。right矩形右部x坐标。bottom矩形下部y坐标。2.3.4bar3d这个函数用于画有边框三维填充矩形。vo

22、idbar3d(intleft,inttop,intright,intbottom,intdepth,booltopflag);参数:left矩形左部x坐标。top矩形上部y坐标。right矩形右部x坐标。bottom矩形下部y坐标。depth矩形深度。topflag为false时,将不画矩形的三维顶部。该选项可用来画堆叠的三维矩形。2.3.5circle这个函数用于画圆。voidcircle(intx,inty,intradius);参数:x圆的圆心x坐标。y圆的圆心y坐标。radius圆的半径。2.3.6drawpoly这个函数用于画多边形。voiddrawpoly(intnumpoint

23、s,constint*polypoints);参数:numpoints多边形点的个数。polypoints每个点的坐标,数组元素个数为numpoints*2。该函数并不会自动连接多边形首尾。如果需要画封闭的多边形,请将最后一个点设置为与第一点相同。以下局部代码绘制一个封闭的三角形:intpoints=50,200,200,200,200,50,50,200;drawpoly(4,points);2.3.7ellipse这个函数用于画椭圆。voidellipse(intleft,inttop,intright,intbottom);参数:left椭圆外切矩形的左上角x坐标。top椭圆外切矩形的左

24、上角y坐标。right椭圆外切矩形的右下角x坐标。bottom椭圆外切矩形的右下角y坐标。说明:由于屏幕像素点坐标是整数,因此用圆心和半径描述的椭圆无法处理直径为偶数的情况。而该函数的参数采用外切矩形来描述椭圆,可以解决这个问题。当外切矩形为正方形时,可以绘制圆。2.3.8fillcircle这个函数用于画填充圆。voidfillcircle(intx,inty,intradius);参数:x圆心的x坐标。y圆心的y坐标。radius圆的半径。说明:该函数使用当前线形和当前填充样式绘制有外框的填充圆。2.3.9fillellipse这个函数用于画填充的椭圆。voidfillellipse(in

25、tleft,inttop,intright,intbottom);参数:left椭圆外切矩形的左上角x坐标。top椭圆外切矩形的左上角y坐标。right椭圆外切矩形的右下角x坐标。bottom椭圆外切矩形的右下角y坐标。说明:该函数使用当前线形和当前填充样式绘制有外框的填充椭圆。由于屏幕像素点坐标是整数,因此用圆心和半径描述的椭圆无法处理直径为偶数的情况。而该函数的参数采用外切矩形来描述椭圆,可以解决这个问题。当外切矩形为正方形时,可以绘制填充圆。2.3.10fillpoly这个函数用于画填充的多边形。voidfillpoly(intnumpoints,constint*polypoints)

26、;参数:numpoints多边形点的个数。polypoints每个点的坐标,数组元素个数为numpoints*2。该函数会自动连接多边形首尾。说明:该函数使用当前线形和当前填充样式绘制有外框的填充多边形。示例:以下局部代码绘制一个封闭的填充三角形:intpoints=50,200,200,200,200,50;fillpoly(3,points);2.3.11floodfill这个函数用于填充区域。voidfloodfill(intx,inty,COLORREFborder)参数:x待填充区域内任意点的x坐标。y待填充区域内任意点的y坐标。border待填充区域的边界颜色。填充动作在该颜色围成

27、的封闭区域内填充。说明:填充动作以(x,y)为起点,向周围扩散,直到遇到border指定的颜色才会终止。所以,指定的区域必须是封闭的。填充的颜色和样式可以使用setfillstyle函数指定。2.3.12getfillstyle这个函数用于获取当前填充类型。voidgetfillstyle(COLORREF*pcolor,int*ppattern=NULL,char*pupattern=NULL);参数:pcolor返回当前填充色。ppattern返回当前填充图案。详见setfillstyle。pupattern指向char8的指针,如果该指针不为空,且当前填充图案为USER_FILL,返回当

28、前的自定义填充样式。2.3.13getheight这个函数用于获取绘图区高度。intgetheight();2.3.14getlinestyle这个函数用于获取当前线形。voidgetlinestyle(int*plinestyle,WORD*pupattern=NULL,int*pthickness=NULL);参数:plinestyle返回当前线型。详见setlinestyle。pupattern返回当前自定义线形数据。pthickness返回当前线形宽度。2.3.15getpixel这个函数用于获取点的颜色。COLORREFgetpixel(intx,inty);参数:x要获取颜色的x坐

29、标。y要获取颜色的y坐标。2.3.16getwidth该函数用于获取绘图区宽度。intgetwidth();2.3.17getx这个函数用于获取当前x坐标。intgetx();2.3.18gety这个函数用于获取当前y坐标。intgety();2.3.19line这个函数用于画线。还可以用linerel和lineto画线。voidline(intx1,inty1,intx2,inty2);参数:x1线的起始点的x坐标。y1线的起始点的y坐标。x2线的终止点的x坐标。y2线的终止点的y坐标。2.3.20linerel这个函数用于画线。还可以用line和lineto画线。voidlinerel(intdx,intdy);参数:dx从“当前点”开始画线,沿x轴偏移dx。dy从“当前点”开始画线,沿y轴偏移dy。2.3.21lineto这个函数用于画线。还可以用line和linerel画线。voidlineto(intx,inty);参数:x目标点的x坐标(从“当前点”开始画线)。y目标点的y坐标(从“当

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2