[PPT模板]2011年6月英语六级CET6真题

上传人:油条 文档编号:55240355 上传时间:2018-09-26 格式:PPT 页数:46 大小:1.12MB
返回 下载 相关 举报
[PPT模板]2011年6月英语六级CET6真题_第1页
第1页 / 共46页
[PPT模板]2011年6月英语六级CET6真题_第2页
第2页 / 共46页
[PPT模板]2011年6月英语六级CET6真题_第3页
第3页 / 共46页
[PPT模板]2011年6月英语六级CET6真题_第4页
第4页 / 共46页
[PPT模板]2011年6月英语六级CET6真题_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《[PPT模板]2011年6月英语六级CET6真题》由会员分享,可在线阅读,更多相关《[PPT模板]2011年6月英语六级CET6真题(46页珍藏版)》请在金锄头文库上搜索。

1、VC+程序设计,基础教程,第 5 章,第5章 图形,学习目标 图形设备接口 基本绘图函数 基本绘图函数 映射模式,第5章 图形,5.1 图形设备接口和设备环境 5.2 绘图函数 5.3 绘图工具 5.4 映射模式 5.5 本章总结,5.1图形设备接口和设备环境,5.1.1 图形设备接口Windows操作系统通过图形设备接口(GDI,Graphics Device Interface),负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或文字。,5.1.2 设备环境GDI的关键元素是设备环境(DC,Device Context),也被称为设备描述表或设备上下文。设备环境是由GDI

2、创建、用来代表设备连接的数据结构.,5.2绘图函数,5.2.1 CDC及其子类设备环境类CDC,也称为设备上下文类。它提供了绘制和打印图形的全部函数。,5.2.2 获取设备环境DC绘图前,必须获取设备环境DC。如何获取?在MFC应用程序中,常用的获得DC的方法有两种。,【操作实例5.1】创建一个文档/视图结构的MFC单文档应用程序,在窗口画一个红点和一条线。操作步骤:书P125程序运行结果: 书P125,操作实例5.1的归纳分析,利用消息处理函数OnDraw()获得DC绘图前必须获得设备环境DC。 CDC类对象指针pDCOnDraw函数的定义中pDC是一个CDC类对象指针 当前文档对象的指针p

3、Doc TODO注释语句,【操作实例5.2】创建一个文档/视图结构的MFC单文档应用程序,在鼠标单击左键的位置画一个红点。操作步骤:书P126程序运行结果: 书P126,操作实例5.2的归纳分析,利用CClientDC类获得客户区DC语句CClientDC dc(this)的作用就是获得窗口的客户区设备环境DC,this相当于一个本类的指针。 鼠标消息处理函数的参数 鼠标消息处理函数OnLButtonDown(UINT nFlags, CPoint point)有两个参数:第一个参数nFlags表示鼠标消息产生时,键盘上的某些键的状态;第二个参数point指定了鼠标光标的x和y轴坐标。,5.2

4、.3 简单数据类型在图形绘制中,经常需要使用MFC中的几个简单数据类型:CPoint、CSize和CRect。 1 CPoint类CPoint对象表示一个点。 2 CSize类CSize对象用于表示距离或相对位置。 3 CRect类CRect封装了一个矩形区域以及与其相关的操作。,5.2.4 绘图函数CDC绘图函数包括画点、线、矩形、多边形、圆弧、椭圆、扇形等。1、设置起始位置GetCurrentPosition()函数用于获取画笔的当前位置,函数原型如下:Cpoint GetCurrentPosition() Const;,2、画点 函数SetPixel()用于在指定坐标上用指定颜色绘制一个

5、点,函数原型如下: COLORREF SetPixel(int x,int y,COLORREF crColor); COLORREF SetPixel(POINT point,COLORREF crColor); 参数(x,y)和point为坐标,crColor为指定的颜色RGB值。,3、画直线 函数LineTo()用于从当前位置向指定位置画一条直线,函数原型如下: BOOL LineTo(int x,int y); BOOL LineTo(POINT point);,4、画矩形和圆角矩形 Rectangle函数用于矩形的绘制,函数原型: BOOL Rectangle(int x1,int

6、y1,int x2,int y2); BOOL Rectangle(LPCRECT lpRect); 参数x1和y1表示矩形左上角的坐标,x2和y2表示矩形右下角的坐标,参数lpRect 为RECT结构或CRect对象。,5、画椭圆(圆) Ellipse函数用于画椭圆或圆,函数原型如下: BOOL Ellipse(int x1,int y1,int x2,int y2); BOOL Ellipse(LPCRECT lpRect);,6、画弧 Arc函数将按逆时针方向绘制椭圆上的一段弧,函数原型如下: BOOL Arc(int x1,int y1,int x2,int y2,int x3,int

7、 y3,int x4,int y4); BOOL Arc(LPCRECT lpRect,POINT ptStart,POINT ptEnd);,7、画折线 (1)Polyline函数用于绘制连接指定的一组顶点的一条折线,函数原型如下: BOOL Polyline(LPPOINT lpPoints,int nCount); (2)PolyPolyline函数用于绘制连接指定的一组顶点的多条折线,函数原型如下: BOOL PolyPolyline(const POINT*lpPoints,const DWORD*lpPolyPoints,int nCount);,8、画多边形 (1) Polygo

8、n函数用于画一个多边形,函数原型如下: BOOL Polygon(LPPOINT lpPoints,int nCount);(2) PolyPolygon函数用于一次画多个多边形,函数原型如下: BOOL PolyPolygon(LPPOINT lpPoints,LPINT lpPolyCounts,int nCount);,5.3绘图工具,5.3.1 CGdiObject及其子类 CGdiObject类是MFC提供绘图工具的类。,5.3.2 绘图工具选择函数Windows应用程序创建输出时,使用的绘图工具是画笔和画刷,用画笔绘制线条或勾画一个封闭区域的边界,再用画刷填充封闭区域内部。1、库存

9、的GDI对象Windows包含一些预定义的库存GDI对象:画笔、画刷和字体。,2、自定义的GDI对象如果使用自定义的GDI对象来绘图,遵循的操作步骤如下: (1) 创建一个GDI对象。分两步: 第一步:定义一个GDI对象类的实例; 第二步:用相应的函数创建该对象; (2) 创建对象后,调用SelectObject()函数将该对象选入当前设备环境中,并保存原来的GDI对象; (3) 调用绘图函数绘制图形; (4) 绘图结束后,再利用SelectObject()函数恢复当前设备环境中原来的GDI对象。,【操作实例5.3】创建一个文档/视图结构的MFC单文档应用程序,使用自定义的GDI对象绘制图形。

10、操作步骤:书P135程序运行结果: 书P135,操作实例5.3的归纳分析,创建GDI对象使用自定义的GDI对象绘制图形,第一步就是创建对象:先定义一个对象实例,然后用函数创建对象。 将GDI对象选入设备环境当生成一个GDI对象时,它是不会生效的。如果需要利用绘图函数画点、线、椭圆等,必须用绘图工具选择函数SelectObject将该GDI对象选入当前设备环境 。,操作实例5.3的归纳分析,绘图工具选择函数SelectObject() 恢复设备环境中原来的GDI对象用绘图函数绘图后,应该恢复设备环境中原来的GDI对象。,操作实例5.3的归纳分析,使用MFC实现绘图的操作步骤一般说来,使用MFC中

11、实现绘图的操作步骤,如下:第一步:首先获得设备环境DC;第二步:选择GDI对象中的绘图工具;第三步:用CDC对象的绘图函数绘图;第四步:恢复原来的GDI对象;,5.3.3画笔 1、创建画笔的方法 (1)定义时直接创建 (2) 定义 CPen对象,再调用CreatePen()函数2、CreatePen()函数的原型 BOOL CreatePen(int nPenStyle,int nWidth,COLORREF crColor);,5.3.4画刷 1、创建画刷的方法 (1)定义时直接创建2、CreateSolidBrush()和CreateHatchBrush()的函数原型 BOOL Creat

12、eSolidBrush(COLORREF crColor); BOOL CreateHatchBrush(int nIndex,COLORREF crColor);,5.3.5位图Windows的位图有两种类型:一种是DDB位图(也称之为GDI位图),另一种是DIB位图。1、DDB位图和DIB位图 (1)DDB位图又称为设备相关图(Device-dependent bitmap), DDB依赖于具体设备。 (2)DIB位图又称为设备无关图(Device-independent bitmap),DIB不依赖于具体设备。,2、显示位图 DDB位图的显示使用CBitmap类必须将BMP位图装入资源中

13、,然后通过类 CBitmap的成员函数使用它,再通过CDC类的成员函数操作它。 (2) DIB位图的显示至于DIB,MFC未提供现成的类来封装DIB。可以利用API函数来实现,但比较复杂。,【操作实例5.4】DDB位图的显示。创建一个文档/视图结构的MFC单文档应用程序,在视图中显示位图。操作步骤:书P139程序运行结果: 书P140,操作实例5.4的归纳分析,导入位图资源的类型 导入位图资源的颜色 mbmp.LoadBitmap(IDB_BITMAP1); BITMAP bm; CDC dcMem; dcMem.CreateCompatibleDC(pDC); CBitmap*pOldbmp

14、=dcMem.SelectObject(,5.4映射模式,5.4.1 坐标系统 Windows GDI为程序提供了两种不同的坐标系统:逻辑坐标系统和设备坐标系统。 1、设备坐标系统设备坐标系统是指物理设备(如显示器或打印机)所使用的坐标系统。 2、逻辑坐标系统逻辑坐标系统是指用户使用CDC绘图函数绘制图形的坐标系统。,5.4.2映射模式 Windows提供了8种映射模式,这些映射模式都反映了逻辑设备单位和实际物理单位之间的对应转换关系。,【操作实例5.5】绘制一个半径为50个单位,圆心位于(0,0)点,同时绘制一个连接(0,0)到(100,100)两点的直线。操作步骤:书P142-143程序运

15、行结果: 书P143,操作实例5.5的归纳分析,默认的坐标系统默认的坐标系统,坐标原点位于窗口的左上角,水平轴的正方向向右,垂直轴的正方向向下。 默认的映射模式默认情况下使用MM_TEXT映射模式。如果在应用程序中没有具体的规定某一映射模式,应用程序就将使用MM_TEXT映射模式。,【操作实例5.6】将操作实例5.5中的坐标原点沿X轴正方向移动100个单位,Y轴正方向移动100个单位。操作步骤:书P143-144程序运行结果: 书P144,【操作实例5.7】将操作实例5.5中的坐标原点设置为客户区中心。 操作步骤:书P144程序运行结果: 书P144,操作实例5.7的归纳分析,从运行结果可以看

16、到,无论窗口如何调整,坐标原点始终处于客户区中心。 (1)GetClientRect(将客户区中心设置为坐标原点。,【操作实例5.8】将操作实例5.5中的映射模式分别修改为MM_HIENGLISH、MM_HIMETRIC、MM_LOENGLISH、MM_LOMETRIC、MM_TWIPS,观察不同模式下的运行效果。操作步骤:书P145程序运行结果: 书P145,操作实例5.8的归纳分析,函数SetMapMode()通过CDC类的SetMapMode()可以修改映射模式。 pDC-SetMapMode(MM_HIENGLISH)MM_HIENGLISH映射模式,一个像素单位等于0.001英寸设备

17、单位,且Y轴向上。因此图形变小(和默认映射模式相比),且直线方向向上。,【操作实例5.9】使用MM_ISOTROPIC映射模式绘图,观察运行效果。操作步骤:书P146程序运行结果: 书P146,操作实例5.9的归纳分析,pDC-SetMapMode(MM_ISOTROPIC);将映射模式设置为非约束模式MM_ISOTROPIC。窗口和视口的概念 pDC-SetWindowExt(1000,1000); pDC-SetViewportExt(Recto.Width(),Recto.Height(); SetWindowExt()和SetViewportExt()两个函数共同确定逻辑坐标的方向 SetWindowExt()和SetViewportExt()两个函数共同确定逻辑坐标长度,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号