31 VC图形编程基础.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机图形学 第3讲 VC图形编程基础 华中科技大学机械学院CAD中心 吴义忠cad.wyz@hust.edu.cn 参考文献 Visual C++技术内幕,David J. Kruglinski Visual C++实践与提高-图形图像编程篇,李于剑 Visual C++图形编程技巧与实例,谭明金 主要内容 3.1 VC程序框架 3.2 基本图形编程支持 3.3 实例 C# / WPF SilverLight Java2D/3D 平台和库 C++语言 Visual C++ 6.0 Visual C++ 2003 Visual C++ 2005/2008/2010 操作系统 Windows 2000/XP/2003 Windows 7 库 SDK MFC STL Boost 几种常用应用程序类型 Win32 控制台程序 Windows程序 DLL 、LIB MFC支持 ActiveX控件 MFC窗口程序 DLL Windows程序特点 面向对象 消息机制 隐含的主过程 //创建窗口、视和文档等 //进入CWinApp的Run主循环 While(1) PeekMessage(); PostMessage(); end 3.1 VC程序框架 MFC窗口应用程序:单文档、多文档、基于对话框 AppWizard产生的文件类型 几个概念: 应用app 窗口frmwnd 视窗view 文档doc 程序类结构 类函数 VS 2010简介 菜单介绍 解决方案 项目设置 选项 程序调试 编辑助手 MSDN MFC界面设计 菜单 对话框、对话框条 工具条、状态条 位图 BCGControlBar WPF 3.2 VC图形支持 绘图环境 GDI对象 基本图元绘制 视窗内画图 Windows图形编程主要是利用图形设备接口(GDI)中的相关函数实现的。通过确定设备环境(DC)的“状态”,以确定图形的颜色、尺寸等同性。为了使用GDI和DC来绘图必须完成以下工作: 确定GDI绘图对象,如画笔、画刷和字体等。 确定绘制时的缩放尺寸的映射模式。 确定其他细节,如文本的对齐参数,多边形的填充状态等。 DC设备环境 Windows窗口可GetDC(一般可以5个公共的DC,用后及时释放ReleaseDC),应用程序通过DC绘制图形,在窗口内显示 MFC提供的DC类对象: HDC句柄, CDC对象 CDC派生类 GDI类-CGdiObject 参考MSDN CBitmap——位图是一种位矩阵,每 个显示像素都对应于其中的一个或多个位。用户可以利用位图来表示图像,也可以利用它来创建画刷。 CBrush——画刷定义了一种位图形式的像素,利用它可对区域内部填充颜色。 CFont——字体是一种具有某种风格和尺寸的所有字符的完整集合,它常常被当作资源存于磁盘中,其中有一些还依赖于某种设备。 CPen——画笔是一种用来画线及绘制有形边框的工具,用户可以指定它的颜色及厚度,井民可以指定它画实线、点线或虚线。 CRgn——区域是由多边形、椭圆或二者组合形成的—种范围,可以利用它来进行填充、裁剪以及鼠标点中测试。 CPalette——调色板是一种颜色映射接口,它允许应用程序在不干扰其他应用程序的前提下,充分利用输出设备的颜色描绘能力。 图形显示 CWnd::OnDraw() ? 基本图元绘制 CDC类的成员函数调用 点:SetPixel 线段:Moveto、Lineto 圆弧:Arc 椭圆和圆:Ellipse 矩形:Rectangle … Windows下图形显示的8种映射模式(SetMapMode函数) 逻辑座标与设备座标的转换 逻辑座标——CDC函数的参数均以逻辑座标表示,映射模式为MM_TEXT时,逻辑坐标就是像素 设备座标——屏幕座标,鼠标拾取点时获得的为屏幕座标,为像素值 转换方法(CDC成员函数) 映射模式设置与测试 void CTest1View::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) { // TODO: 在此添加专用代码和/或调用基类 CView::OnPrepareDC(pDC, pInfo); pDC-SetMapMode(MM_TWIPS); //不能影响后面的nMap } pDC-SetMapMode(MM_TEXT); CPoint p0(0,0); pDC-LPtoDP(p0); //原点不变 CPoint p1(100,100); pDC-LPtoDP(p1); //大小也不变 pDC-SetMapMode(MM_TWIPS); CPoint p2(0,0); pDC-LPtoDP(p2); //原点不变 CPoint p3(

文档评论(0)

187****5045 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档