第二章Visual C++6.0 绘图基础.pptVIP

  • 54
  • 0
  • 约2.15万字
  • 约 87页
  • 2019-10-15 发布于湖北
  • 举报
Turbo C: 控制台程序,不支持交互操作。 只能显示16色,不能开发光照和带阴影的程序。 微软基类库MFC(microsoft foundation class library,MFC)是以C++形式封装的Windows API(Application Program Interface),包含了200多个已经定义好的常用基类。在程序设计过程中,一般是通过MFC调用基类的成员函数来完成设计任务的。 生成一个空项目的步骤见教材40页。 添加菜单项并生成函数的步骤见教材82页。 点击工具条上的 “!”按钮,就可以直接编译、运行程序 尽管未编写一句代码,但Test程序已经形成一个可执行程序框架 1 获取(或声明)CDC类对象 2 设置映射模式 3 声明并创建一个绘图工具类对象(如画笔、画刷等)4 将绘图工具类对象选入当前设备上下文,同时保存原GDI对象指针。 5 使用新GDI对象绘图 6 绘图结束后,使用已保存的原GDI对象指针将设备上下文恢复原状。 7 撤消CDC指针 2.3.1 CDC类结构和GDI对象 CClientDC类: CPaintDC类: CClientDC dc(this); this是在一个类、结构体或联合体类型的成员函数中可访问的指针,指向成员函数所调用的指针。 该语句声明的是对象,函数返回时自动撤消; 2.释放设备上下文 int ReleaseDC(CDC* pDC);(指针需要按规定被释放) 2. 简单数据类型 CPoint类:存放点坐标(x,y)。 CRect类:存放矩形左上角顶点和右下角顶点的坐标(top,left,right,bottom) CSize类:存放矩形的宽度和高度的坐标(cx,cy),其中cx为矩形的宽度,cy为矩形的高度。 上述类与一般结构体用法相同 CGdiObject类:GDI绘图工具的基类,一般不能直接使用。 CBitmap:封装了一个GDI位图,提供位图操作的接口。 CBrush类:封装了GDI画刷,可以选作设备上下文的当前画刷。画刷用于填充图形内部。 CFont:封装了GDI字体,可以选作设备上下文中的当前字体。 CPallette:封装了GDI调色板,提供应用程序和显示器之间的颜色接口。 CPen:封装了GDI画笔,可以选作设备上下文的当前画笔。画笔用于绘制图形边界线。 在选择GDI对象进行绘图时,需要遵循以下步骤: 绘图开始前,创建一个GDI对象,并选入当前设备上下文,同时保存原GDI对象指针。 使用新GDI对象绘图。 绘图结束后,使用已保存的原GDI对象指针将设备上下文恢复原状。 程序实例(画线) CPen NewPen,*pOldPen; //声明画笔对象 NewPen.CreatePen(PS_SOLID,1,RGB(0,0,255));//选择蓝色画笔 pOldPen=pDC-SelectObject(NewPen); //CDC与画笔对象关联 pDC-MoveTo(p0); //画线 pDC-LineTo(p1); //画线 pDC-SelectObject(pOldPen); //恢复原来画笔对象 把图形显示在屏幕坐标系中的过程称为映射 根据映射模式的不同可以分为 逻辑坐标 设备坐标 逻辑坐标的单位是米制尺度或其它与字体相关的尺度 设备坐标的单位是像素 设置映射模式通过CDC类 设置映射模式通过CDC类的如下函数实现 SetMapMode:设置映射模式 SetWindowExt:设置窗口范围 SetViewportExt:设置视区范围 SetWindowOrg:设置窗口原点 SetViewportOrg:设置视区原点 映射模式 例2-5 使用用户自定义映射模式,设置窗口大小和视区大小相等的二维坐标系。视区中x轴水平向右为正,y轴垂直向上为正,原点位于客户区中心。 参数x,y是像素点的逻辑坐标。 COLORREF是32位颜色类型,crColor是像素点的颜色值,COLORREF型变量可以利用RGB(bRed,bGreen,bBlue)来指定相应的颜色值,每种颜色用一个字节表示,可以被设定为0~255之间的任意值,0代表无色,255代表全色。 SetPixelV()函数不需要返回所绘制像素点的RGB值,执行速度比SetPixel()快得多。在真实感图形学中,物体表面模型使用像素点模拟光照颜色。提高像素点的绘制速度可以有效提高图形生成速度。推荐使用SetPixelV()函数绘制像素点。 返回值:指定像素的RGB值。 参数说明:得到指定像素的RGB颜色值。 本函数是常成员函数 。 void CTestView::OnDraw(CDC* pDC) {//画点不需要定义绘图对象 CTestDoc* pDoc

文档评论(0)

1亿VIP精品文档

相关文档