EasyX指导手册(2)

2019-08-17 13:14

返回值:

指定颜色中的红色值,值的范围0~255。 说明:

GetRValue宏在WindowsSDK中定义。 2.2.8HSLtoRGB

该函数用于转换HSL颜色为RGB颜色。 COLORREFHSLtoRGB(floatH,floatS,floatL); 参数:

H原HSL颜色模型的Hue(色相)分量,0<=H<360。

S原HSL颜色模型的Saturation(饱和度)分量,0<=S<=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(floatH,floatS,floatV); 参数:

H原HSV颜色模型的Hue(色相)分量,0<=H<360。

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时,是色彩最鲜明的状态。

示例:

HSV颜色模型类似于HSL,示例程序中的“彩虹”是HSL模型的操作范例,可以参考。 2.2.10RGB

RGB宏用于通过红、绿、蓝颜色分量合成颜色。 COLORREFRGB(

BYTEbyRed,//颜色的红色部分 BYTEbyGreen,//颜色的绿色部分 BYTEbyBlue//颜色的蓝色部分 ); 参数:

byRed颜色的红色部分,取值范围:0~255。 byGreen颜色的绿色部分,取值范围:0~255。 byBlue颜色的蓝色部分,取值范围:0~255。 返回值:

返回合成的颜色。 说明:

可以通过GetRValue、GetGValue、GetBValue宏从颜色中分离出红、绿、蓝颜色分量。 注:

RGB宏在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<=H<360。

S用于返回HSL颜色模型的Saturation(饱和度)分量,0<=S<=1。 L用于返回HSL颜色模型的Lightness(亮度)分量,0<=L<=1。 说明:

HSL详见HSLtoRGB。

2.2.13RGBtoHSV

该函数用于转换RGB颜色为HSV颜色。

voidRGBtoHSV(COLORREFrgb,float*H,float*S,float*V); 参数:

rgb原RGB颜色。

H用于返回HSV颜色模型的Hue(色相)分量,0<=H<360。

S用于返回HSV颜色模型的Saturation(饱和度)分量,0<=S<=1。 V用于返回HSV颜色模型的Value(明度)分量,0<=V<=1。 2.2.14setbkcolor

这个函数用于设置当前绘图背景色。 voidsetbkcolor(COLORREFcolor); 参数:color指定要设置的背景颜色。 说明:

“背景色”是调色板绘图模式下的概念,所谓的背景色,是调色板中编号为0的颜色,可以通过修改编号0的颜色达到随时修改背景色的目的。在调色板模式下,显存中保存的是每种颜色在调色板中的编号。在EasyX中,已经废弃了调色板模式。

真彩色绘图模式下没有调色板,显存中直接保存每个点的颜色,没有背景色的概念。 EasyX采用真彩色绘图模式,同时使用背景色,目的有两个: 1.当文字背景不是透明时,指定文字的背景色。

2.执行cleardevice()或clearcliprgn()时,使用该颜色清空屏幕或裁剪区。

示例:

以下示例实现在蓝色背景下绘制红色的矩形: #include #include voidmain() {

//初始化绘图窗口 initgraph(640,480); //设置背景色为蓝色 setbkcolor(BLUE); //用背景色清空屏幕 cleardevice(); //设置绘图色为红色 setcolor(RED); //画矩形

rectangle(100,100,300,300); //按任意键退出 getch();

closegraph(); }

2.2.15setcolor

这个函数用于设置当前绘图前景色。 voidsetcolor(COLORREFcolor); 参数:color要设置的前景颜色。 2.3绘制图形相关函数 2 2.3.2arc

这个函数用于画椭圆弧。

voidarc(intleft,inttop,intright,intbottom,doublestangle,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

这个函数用于画有边框三维填充矩形。

voidbar3d(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(intnumpoints,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椭圆外切矩形的左上角y坐标。 right椭圆外切矩形的右下角x坐标。 bottom椭圆外切矩形的右下角y坐标。 说明:

由于屏幕像素点坐标是整数,因此用圆心和半径描述的椭圆无法处理直径为偶数的情况。而该函数的参数采用外切矩形来描述椭圆,可以解决这个问题。

当外切矩形为正方形时,可以绘制圆。 2.3.8fillcircle 这个函数用于画填充圆。

voidfillcircle(intx,inty,intradius); 参数:

x圆心的x坐标。 y圆心的y坐标。 radius圆的半径。 说明:

该函数使用当前线形和当前填充样式绘制有外框的填充圆。 2.3.9fillellipse


EasyX指导手册(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:六(上)《比的认识》集体评课

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: