图形设备接口-画笔与画刷

图形设备接口-画笔与画刷

ID:39425754

大小:1.87 MB

页数:46页

时间:2019-07-03

图形设备接口-画笔与画刷_第1页
图形设备接口-画笔与画刷_第2页
图形设备接口-画笔与画刷_第3页
图形设备接口-画笔与画刷_第4页
图形设备接口-画笔与画刷_第5页
资源描述:

《图形设备接口-画笔与画刷》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、图形与图像编程基础本章主要学习内容:图形处理的基本原理:图形设备接口设备环境GDI坐标系映射模式使用画笔和画刷绘制图形文本与字体位图、图标和光标6.3绘制基本图形Windows中的基本图形包括点、直线、圆、圆弧、矩形、椭圆等。MFC把绘制这些图形的函数封装在CDC类中。绘图通常编写C*View类的OnDraw(CDC*pDC)函数,其中参数pDC指当前设备环境指针。补充:橡皮筋技术(利用SetROP2函数)先了解SetROP2函数的两个参数R2_NOT与R2_NOTXORPEN的使用效果,以下为该两种绘画模式举例:R2_NOTXORPEN绘画模式 你用红色画笔在黑色背景上画一条直线,显示红色

2、,但你再用这只笔在刚画的直线上重画一遍,就相当于把开始画的红线擦除掉了,划线的地方显示为背景色。R2_NOT绘画模式 同样有在同一个地方画两次相当于什么都没画的功能,不过R2_NOT绘画模式第一次画的时候显示颜色并不是你选定的画笔颜色,而是默认的颜色。颜色一个彩色象素的显示需要颜色空间的支持,常用的颜色空间有RGB。RGB颜色空间选用红(R)、绿(G)、蓝(B)三种基色分量,通过对这三种基色不同比例的混合,可以得到不同的彩色效果。在MFC中,CDC使用的是RGB颜色空间,其中,COLORREF是用来表示RGB颜色的一个32位的数据类型。它可以用下列的十六进制表示一个RGB值:0x00bbgg

3、rr,其中bb、gg、rr分别表示蓝、绿、红3个颜色分量的十六进制值。颜色在具体操作RGB颜色时,可使用下列的宏操作:GetBValue、GetGValue、GetRValue来获得其中各个颜色分量值。如:intnRed=GetBValue(color);RGB可以将指定的三个分量值转换成一个32位的RGB颜色值。如:COLORREFcolor=RGB(nRed,nGreen,nBlue);颜色和颜色对话框MFC的CColorDialog类为应用程序提供了颜色选择通用对话框,构造函数如下:CColorDialog(COLORREFclrInit=0,DWORDdwFlags=0,CWnd*p

4、ParentWnd=NULL);其中,clrInit指定选择的默认颜色值,默认为RGB(0,0,0)黑色。pParentWnd指定对话框的父窗口指针。dwFlags指定对话框外观和功能(见教材P209)。当对话框单击OK退出时,可调用下列成员函数获得相应的颜色。COLORREFGetColor()const;voidSetCurrentColor(COLORREFclr);staticCOLORREF*GetSavedCustomColors()输出文本与画点//设置文本的前景色pDC->SetTextColor(RGB(255,0,255));//输出文本pDC->TextOut(20,2

5、0,"Point");//以不同的颜色画点pDC->SetPixel(100,20,RGB(255,0,0));pDC->SetPixel(110,20,RGB(0,255,0));pDC->SetPixel(120,20,RGB(0,0,255));画直线、矩形与椭圆//画直线pDC->MoveTo(20,90);pDC->LineTo(160,90);pDC->LineTo(130,80);//直角矩形pDC->Rectangle(190,270,250,310);//圆角矩形pDC->RoundRect(265,270,330,310,30,20);//椭圆pDC->Ellipse(2

6、00,160,280,200);6.4画笔和画刷6.4.1画笔6.4.2画刷6.4.3画笔和画刷的应用程序举例6.4.1画笔一个画笔通常具有宽度、样式和颜色三种属性。画笔的宽度用来确定所画的线条宽度,它是用设备单位表示的。默认的画笔宽度是一个像素单位。画笔的颜色确定了所画的线条颜色。画笔的样式确定了所绘图形的线型,它通常有实线(PS_SOLID)、虚线(PS_DASH)、点线(PS_DOT)、点划线(PS_DASHDOT)、双点划线(PS_DASHDOTDOT)、不可见线(PS_NULL)和内框线(PS_INSIDEFRAME)等七种样式。1.创建画笔CPen类封装图形设备接口GDI画笔对象

7、的功能。创建画笔可以采用以下几种方法:(1)使用无参构造函数声明对象,之后调用成员函数CreatePen()创建具体的画笔。BOOLCreatePen(intnPenStyle,intnWidth,COLORREFcrColor);其中nPenStyle表示画笔的样式。nWidth表示画笔的线宽。crColor表示画笔的RGB颜色。例如:CPenPen;Pen.CreatePen(PS_SOLID,1,RGB

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。