欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    EasyX指导手册.docx

    • 资源ID:14883066       资源大小:171.27KB        全文页数:87页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EasyX指导手册.docx

    1、EasyX指导手册EasyX指导手册希M乍人:jianxiawzx、基本概念1.1颜色EasyX使用24bit真彩色,不再支持调色板模式 表示颜色有以下几种办法:1.用预定义颜色常量,如下:量常值颜色 量常I值颜色BDARKG深0黑0x545454LACKRAY灰B 0xA8OxFC蓝LIGHTBLUE亮蓝LUE 00005454OxOOALIGHTGRE 0x54亮GREEN绿800ENFC54 绿0xA8ALIGHTCYA OxFC亮CYAN青800NFC54 青0x0000x54亮RED红LIGHTRED0A854FC 红MAGEN0xA80些匕LIGHTMAG OxFC亮糸TA0A8E

    2、NTA 54FC 紫0x0050x54BROWN棕YELLOW黄4A8FCFCLIGHT0xA8A浅OxFCWHITE白GRAY 8A8灰FCFC2.用16进制的颜色表示,形式为:Oxbbggrr(bb= 蓝,gg=绿,rr=红)3.用RGB宏合成颜色。详见 RGB4.用HSLtoRGB HSVtoRG转换其他色彩模型到 RGB颜色。详见HSLtoRGB HSVtoRGB示例:以下是部分设置前景色的方法:setcolor(OxffOOOO);setcolor(BLUE);setcolor(RGB(0,0,255);setcolor(HSLtoRGB(240,1,0.5);1.2坐标在EasyX

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

    4、种,一种是默认的绘图窗口,另一种是 IMAGE对象。通过SetWorkinglmage()函数可以设置当前用于绘图的设备。设置当前用于绘图的设备后,所有的绘图函数都会绘制在该设备上。二、绘图函2.1.1clearcliprg n这个函数用于清空裁剪区的屏幕内容。voidclearcliprg n();2.1.2cleardevice这个函数用于清除屏幕内容。具体的,是用当前背景色清空屏幕,并将当前点移至(0,0) voidcleardevice();2.1.3closegraph这个函数用于关闭图形环境。voidclosegraph();2.1.4getaspectratio这个函数用于获取当

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

    6、、填充类型、字体为默认值。voidgraphdefaults();2.1.7i nitgraph这个函数用于初始化绘图环境。HWNDi nitgraph(i ntWidth,i ntHeight,i ntFlag=NULL);参数:Width绘图环境的宽度。Height绘图环境的高度。Style绘图环境的样式,默认为 NULL可为以下值: 含值义SHOWCON表示可以保留原控制台窗SOLE 口。2.1.8setaspectratio这个函数用于设置当前缩放因子。voidsetaspectratio(floatxasp,floatyasp);参数:100的矩形,实际的绘制宽度为100*xasp。

    7、100的矩形,实际的绘制高度为100*yasp。例如,执行 setaspectratio(1,-1); 后,Xaspx方向上的缩放因子。例如绘制宽度为Yaspy方向上的缩放因子。例如绘制高度为 说明:如果缩放因子为负,可以实现坐标轴的翻转。可使y轴向上为正。2.1.9setcliprg n这个函数用于设置当前绘图设备的裁剪区。voidsetcliprg n( HRGNhrg n);参数:hrgn区域的句柄。创建区域所使用的坐标为物理坐标。如果该值为 NULL表示取消之前设置的裁剪区。说明:HRGN1 Win dows定义的表示区域的句柄。将该区域设置为裁剪区后,任何区域外的绘 图都将无效(但仍

    8、然可以通过操作显存在裁剪区外绘图)。可以使用 WindowsGD函数创建一个区域。例如,创建矩形区域可以使用函数:HRGNCreateRectRg n(i ntleft,i nttop,i ntright,i ntbottom);此外,还可以使用函数CreateEllipticRgn 创建椭圆形的区域,使用CreatePolygonRgn 创建多边形的区域等等。还可以使用 Combi neRgr组合区域。更多关于区域的 GDI函数,请 参考 MSD中的 RegionFunctions。注意:创建区域后,如果不再使用,请执行 DeleteObject(HRGNhrgn)以释放该区域对 应的系统资

    9、源。示例:以下代码用于创建一个矩形裁剪区,并在该裁剪区内画圆,请观察裁剪效果:#in clude#in cludevoidmai n()/初始化绘图窗口in itgraph(640,480);/创建一个矩形区域HRGNrg n=CreateRectRg n(100,100,200,200);/将该矩形区域设置为裁剪区setcliprg n(rgn);/不再使用rgn,清理rgn占用的系统资源DeleteObject(rg n);/画圆,受裁剪区影响,只显示出四段圆弧circle(150,150,55);/取消之前设置的裁剪区setcliprg n( NULL);/画圆,不再受裁剪区影响,显示出

    10、一个完整的圆circle(150,150,60);/按任意键退出getch();closegraph();2.1.10setorigi n这个函数用于设置坐标原点。voidsetorigi n(i ntx,i nty);x原点的x坐标(使用物理坐标)。y原点的y坐标(使用物理坐标)。2.2颜色表示及相关函数2.2.1相关函数和数据如下:函数或描述数据getbkc获取当前绘图背景色olorgetcol获取当前绘图前景色orGetBValue返回指定颜色中的蓝色值。luelueGBGBGetGVaGetRVaHSLtoRHSVtoRRGB色RGBtoG返回指定颜色中的绿色值。返回指定颜色中的红色值

    11、。转换HSL颜色为RGB颜色。转换HSV颜色为RGB颜色。通过红、绿、蓝颜色分量合成颜转换RGBS色为灰度颜色。orBGR转换RGB颜色为HSL颜色 转换RGB颜色为HSV颜色 设置当前绘图背景色。设置当前绘图前景色。交换颜色中的红色和蓝色。2.2.2BGRBGF宏用于交换颜色中的红色和蓝色。COLORREFBGR(COLORREFcolor);参数:color需要交换红色和蓝色的颜色。返回值:返回交换红色和蓝色后的颜色。说明:颜色在内存中的表示形式为:Oxbbggrr(bb=蓝,gg=绿,rr=红),但是显存中的颜色表 现形式为0xrrggbb。注意,两者的红色和蓝色是相反的。直接操作显存时

    12、,可以通过 BGR宏交换颜色的红色和蓝色部分。2.2.3getbkcolor这个函数用于获取当前绘图背景色。COLORREFgetbkcolor();2.2.4GetBValueGetBValue宏用于返回指定颜色中的蓝色值。BYTEGetBValue(COLORREFrgb);参数:rgb指定的颜色。返回值:指定颜色中的蓝色值,值的范围 0255。说明:GetBValue 宏在 WindowsSD中定义。2.2.5getcolor这个函数用于获取当前绘图前景色COLORREFgetcolor();2.2.6GetGValueGetGValue宏用于返回指定颜色中的绿色值。BYTEGetGVa

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

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

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

    16、1时, 每一色相具有最纯的色光。V是英文Value的首字母,表示明度,等于0时为黑色,在最大明度1时,是色彩最鲜 明的状态。示例:HSV颜色模型类似于HSL示例程序中的“彩虹”是 HSL模型的操作范例,可以参考。2.2.10RGBRGB宏用于通过红、绿、蓝颜色分量合成颜色。COLORREFRGB(BYTEbyRed,/颜色的红色部分BYTEbyGreen,颜色的绿色部分BYTEbyBlue/颜色的蓝色部分);参数:byRed颜色的红色部分,取值范围:0255。byGreen颜色的绿色部分,取值范围:0255。byBlue颜色的蓝色部分,取值范围:0255。返回值:返回合成的颜色。说明:可以通过

    17、GetRValue、GetGValue、GetBValue宏从颜色中分离出红、绿、蓝颜色分量。 注:RGB宏在 WindowsSD中定义。2.2.11RGBtoGRAY该函数用于返回与指定颜色对应的灰度值颜色。COLORREFRGBtoGRAY(COLORREFrgb);参数:rgb 原 RGBS色。2.2.12RGBtoHSL该函数用于转换RGB颜色为HSL颜色。voidRGBtoHSL(COLORREFrgb,float*H,float*S,float*L);参数:rgb 原 RGBs色。H用于返回HSL颜色模型的Hue(色相)分量,0=H360S用于返回HSL颜色模型的Saturatio

    18、n(饱和度)分量,0=S=1L用于返回HSL颜色模型的Lightness(亮度)分量,0=L=1。说明:HSL详见 HSLtoRGB2.2.13RGBtoHSV该函数用于转换RGB颜色为HSV颜色。voidRGBtoHSV(COLORREFrgb,float*H,float*S,float*V);参数:rgb 原 RGBS色。H用于返回HSV颜色模型的Hue(色相)分量,0=H360S用于返回HSV颜色模型的Saturation(饱和度)分量,0=S=1V用于返回HSV颜色模型的Value(明度)分量,0=V=1。2.2.14setbkcolor这个函数用于设置当前绘图背景色。voidsetb

    19、kcolor(COLORREFcolor);参数:color指定要设置的背景颜色。说明:“背景色”是调色板绘图模式下的概念,所谓的背景色,是调色板中编号为0的颜色, 可以通过修改编号0的颜色达到随时修改背景色的目的。在调色板模式下,显存中保存的 是每种颜色在调色板中的编号。在 EasyX中,已经废弃了调色板模式。真彩色绘图模式下没有调色板,显存中直接保存每个点的颜色,没有背景色的概念。EasyX采用真彩色绘图模式,同时使用背景色,目的有两个:1.当文字背景不是透明时,指定文字的背景色。2.执行cleardevice() 或clearcliprgn() 时,使用该颜色清空屏幕或裁剪区。示例:以下

    20、示例实现在蓝色背景下绘制红色的矩形:#in clude#in cludevoidmai n()/初始化绘图窗口in itgraph(640,480);/设置背景色为蓝色setbkcolor(BLUE);/用背景色清空屏幕cleardevice();/设置绘图色为红色setcolor(RED);/画矩形recta ngle(100,100,300,300);/按任意键退出getch();closegraph();2.2.15setcolor这个函数用于设置当前绘图前景色。voidsetcolor(COLORREFcolor);参数:color要设置的前景颜色。2.3绘制图形相关函数22.3.2a

    21、rc这个函数用于画椭圆弧。voidarc(i ntleft,i nttop,i ntright, in tbottom,doublesta ngle,doublee ndan gle);参数:left圆弧所在椭圆的外切矩形的左上角 x坐标。top圆弧所在椭圆的外切矩形的左上角 y坐标。right圆弧所在椭圆的外切矩形的右下角 x坐标。bottom圆弧所在椭圆的外切矩形的右下角 y坐标。stangle圆弧的起始角的弧度。endangle圆弧的终止角的弧度。2.3.3bar这个函数用于画无边框填充矩形。voidbar(i ntleft,i nttop,i ntright,i ntbottom);参

    22、数:left矩形左部x坐标。 top矩形上部y坐标。right矩形右部x坐标。bottom矩形下部y坐标。2.3.4bar3d这个函数用于画有边框三维填充矩形。voidbar3d(i ntleft,i nttop,i ntright,i ntbottom,i ntdepth,booltopflag);参数:left矩形左部x坐标。 top矩形上部y坐标。right矩形右部x坐标。bottom矩形下部y坐标。depth矩形深度。topflag为false时,将不画矩形的三维顶部。该选项可用来画堆叠的三维矩形。2.3.5circle这个函数用于画圆。voidcircle(i ntx,i nty,i

    23、 ntradius);参数:x圆的圆心x坐标。y圆的圆心y坐标。radius圆的半径。2.3.6drawpoly这个函数用于画多边形。voiddrawpoly(i ntnu mpo in ts,c on st in t*polypo in ts);参数:numpoints多边形点的个数。 polypoints 每个点的坐标,数组元素个数为 numpoints*2。该函数并不会自动连接多边形首尾。如果需要画封闭的多边形,请将最后一个点设置为与 第一点相同。以下局部代码绘制一个封闭的三角形:in tpoi nts=50,200,200,200,200,50,50,200; drawpoly(4,p

    24、oi nts);2.3.7ellipse这个函数用于画椭圆。voidellipse(i ntleft,i nttop,i ntright,i ntbottom);参数:left椭圆外切矩形的左上角x坐标。 top椭圆外切矩形的左上角y坐标。right椭圆外切矩形的右下角x坐标。 bottom椭圆外切矩形的右下角y坐标。说明:由于屏幕像素点坐标是整数,因此用圆心和半径描述的椭圆无法处理直径为偶数的情 况。而该函数的参数采用外切矩形来描述椭圆,可以解决这个问题。当外切矩形为正方形时,可以绘制圆。2.3.8fillcircle这个函数用于画填充圆。voidfillcircle(i ntx,i nty

    25、,i ntradius);参数:x圆心的x坐标。y圆心的y坐标。radius圆的半径。说明:该函数使用当前线形和当前填充样式绘制有外框的填充圆。2.3.9fillellipse这个函数用于画填充的椭圆。voidfillellipse(i ntleft,i nttop,i ntright,i ntbottom);参数:left椭圆外切矩形的左上角x坐标。 top椭圆外切矩形的左上角y坐标。right椭圆外切矩形的右下角x坐标。 bottom椭圆外切矩形的右下角y坐标。说明:该函数使用当前线形和当前填充样式绘制有外框的填充椭圆。由于屏幕像素点坐标是整数,因此用圆心和半径描述的椭圆无法处理直径为偶数

    26、的情 况。而该函数的参数采用外切矩形来描述椭圆,可以解决这个问题。当外切矩形为正方形时,可以绘制填充圆。2.3.10fillpoly这个函数用于画填充的多边形。voidfillpoly(i ntnu mpo in ts,con st in t*polypo in ts);参数:numpoints多边形点的个数。polypoints 每个点的坐标,数组元素个数为 numpoints*2。该函数会自动连接多边形首尾。说明:该函数使用当前线形和当前填充样式绘制有外框的填充多边形。示例:以下局部代码绘制一个圭寸闭的填充三角形:in tpoi nts=50,200,200,200,200,50;fill

    27、poly(3,poi nts);2.3.11floodfill这个函数用于填充区域。voidfloodfill(i ntx,i nty,COLORREFborder)参数:x待填充区域内任意点的x坐标。y待填充区域内任意点的y坐标。border待填充区域的边界颜色。填充动作在该颜色围成的圭寸闭区域内填充。说明:填充动作以(x,y)为起点,向周围扩散,直到遇到border指定的颜色才会终止。所以, 指定的区域必须是圭寸闭的。填充的颜色和样式可以使用 setfillstyle 函数指定。2.3.12getfillstyle这个函数用于获取当前填充类型。voidgetfillstyle(COLORR

    28、EF*pcolor,i nt*ppattern=NULL,char*pupattern=NULL);参数:pcolor返回当前填充色。ppattern返回当前填充图案。详见 setfillstyle 。pupattern指向char8的指针,如果该指针不为空,且当前填充图案为 USER_FILL返回当前的自定义填充样式。2.3.13getheight这个函数用于获取绘图区高度。in tgetheight();2.3.14getli nestyle这个函数用于获取当前线形。voidgetli nestyle(i nt*pli nestyle,WORD*pupattern=NULL,i nt*pthick ness=NULL);参数:pli nestyle 返回当前线型。详见setli nestyle 。pupattern返回当前自定义线形数据。pthickness返回当前线形宽度。2.3.15getpixel这个函数用于获取点的颜色。COLORREFgetpixel(i ntx,i nty);参数:x要获取颜色的x坐标。y要获取颜色的y坐标。2.3.16getwidth该函数用于获取绘图区宽度。in tgetwidth();2.3.17getx这个函数用于获取当前x坐标。in tgetx();2.3.18gety这个函数用于获取


    注意事项

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

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开