- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 vc++中的动画编程 11.1 图形载入及如何显示 11.1.1图形设备接口(GDI) ? 提供了一系列的函数和相关的结构,应用程序可以使用它们在显示器、打印机或其他设备上生成图形化的输出结果。 ?应用程序通过创建设备环境(DC),可以直接向指定的设备进行输出。 应用程序可以直接向一个物理设备进行输出;也可以向一个“逻辑”设备进行输出 应用程序可以使用属性函数来设置设备的操作方式和当前的选择。 有关图形的操作相关的类是CBitmap,CBitmap是GDI对象的 重要组成部分若要显示以文件形式存储在磁盘上的位图图像。 添加位图的过程如下所示: (1)创建新的CBitmap对象。 (2)将所需的位图图像文件和对象关联。 (3)将其选入用于显示的DC。 (4)执行图像显示操作。 CBitmap类的成员函数: CBitmap( ):该函数是CBitmap类的构造函数,用于创建CBitmap对象。 LoadBitmap( ):该函数将现有的位图和CBitmap对象关联。 11.1.2 图像位图加载 LoadImage(加载位图):该函数装载目标,光标,或位图。 函数原型:HANDLE LoadImage(NINSTANCE hinst,LPCTSTR lpszName,UINT uType,int cxDesired,int CyDesired,UINT fuLoad); 11.2透明位图如何生成 11.2.1 BitBlt函数基本功能 函数功能:该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。 函数原型:BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop); 11.2.2 BitBlt函数使用实例 1.用BitBlt实现位图上某种颜色的透明显示。 用MFC方式为例,先有如下的定义: 2. 用BitBlt API进行透明显示的步骤: ① 处理pMaskDC为黑白DC,使pActiveDC上颜色为crTrans的部分在pMask显示为白色,其余地方显示为黑色。 ② 将pActiveDC用BitBlt绘制到pDC上,使用SRCINVERT方式 ③ 将pMaskDC用BitBlt绘制到pDC上,使用SRCAND方式 ④ 再将pActiveDC用BitBlt绘制到pDC上,使用SRCINVERT方式 11. 2. 3图像加载与位图生成实例 物体的移动(匀速运动) 本工程中,使用BitBlt函数进行连续贴图来实现小球的运动动画。mdc变量是一个CDC对象,已经通过SelectObject将小球位图选到mdc中。dc.BitBlt(x,y,71,69,mdc,0,0,SRCCOPY);将mdc中的位图,从[0,0]到[71,69]的点阵的象素点,拷贝到dc中的[x,y]到[x+71,y+69]中。 创建一个MFC 的单文档SDI工程,去除Docking toolbar和Initial status bar的选项,工程名为ball。 1.在CmainFrame公有段中添加以下六个变量: 2.打开MainFrm.cpp文件,添加CMainFrame的WM_CREATE消息处理函数。在CMainFrame::OnCreate函数中添加如下代码: 3.添加CMainFrame的WM_TIMER消息处理函数。在CMainFrame::OnTimer函数中添加如下代码: 4.将小球的图片文件BALL1.BMP拷贝到程序目录…\ball中。然后编译运行程序,可以看到一个小球在屏幕上进行碰撞运动。 5.运行效果如下图显示 11.3图形如何运动 11.3.1定时器 在动画编程中一定涉及到动画对象如何移动的问题,那就必须创建定时器,在vc++中定时器用 API函数SetTimer(..)来实现。 定时器创建:SetTimer(),它有三个函数: 定时器ID--区别不同的定时器实例. 定时器间隔--最大分辨率55毫秒 定时器回调函数--特殊的回调函数的地址 定时器的相应:当计数器溢出时,产生一个WM_TIMER消息,通常在OnTimer()处理WM_TIMER消息。 11.3.2定时器消息 定时器消息:WM_TIMER 11.4 图形对象动作 1.4.1图形对象动作原理 动画就是通过快速地播放一系列的静态画面,让人在视觉上产生动态的效果。组成动画的每一个静态画面
您可能关注的文档
- Visual C# 2005程序设计教程 教学课件 作者 978 7 302 19477 4 ch08.ppt
- Visual C# 2005程序设计教程 教学课件 作者 978 7 302 19477 4 ch09.ppt
- Visual C# 2005程序设计教程 教学课件 作者 978 7 302 19477 4 ch10.ppt
- Visual C# 2005程序设计教程 教学课件 作者 978 7 302 19477 4 ch11.ppt
- Visual C# 2005程序设计教程 教学课件 作者 978 7 302 19477 4 ch12.ppt
- Visual C# 2005程序设计教程 教学课件 作者 978 7 302 19477 4 ch13.ppt
- Visual C# 2005程序设计教程 教学课件 作者 978 7 302 19477 4 ch14.ppt
- Visual C# 2008程序设计案例教程电子教案源代码 1.ppt
- Visual C# 2008程序设计案例教程电子教案源代码 2.ppt
- Visual C# 2008程序设计案例教程电子教案源代码 3.ppt
- Visual C++程序设计教程 教学课件 段智毅 第11章 网络编程.ppt
- Visual C++程序设计教程 教学课件 段智毅 第12章 综合实训.ppt
- Visual C++程序设计教程梁建武电子教案 第1章.ppt
- Visual C++程序设计教程梁建武电子教案 第2章.ppt
- Visual C++程序设计教程梁建武电子教案 第3章.ppt
- Visual C++程序设计教程梁建武电子教案 第4章.ppt
- Visual C++程序设计教程梁建武电子教案 第5章.ppt
- Visual C++程序设计教程梁建武电子教案 第6章.ppt
- Visual C++程序设计教程梁建武电子教案 第7章.ppt
- Visual C++程序设计教程梁建武电子教案 第8章.ppt
最近下载
- 2025中级注册安全工程师《安全生产技术基础》思维导图.pdf VIP
- G7718-2025与GB 7718-2011标准对比表格.xlsx VIP
- 2025大疆机场3操作指导书.pdf
- 31011591_liebert.pex冷凝器用户手册_v1.6_20081006.doc VIP
- 初中英语小组合作课堂教学研究.pptx VIP
- 05 Liebert PEX2 高效动态精密空调.pdf VIP
- 《高处作业吊篮》考试试题 .pdf VIP
- 危险化学品企业适用的安全生产法律法规清单.docx VIP
- T型三电平逆变电路原理分析与仿真实现.doc
- 新视野大学英语视听说4第三版听力练习原文及答案.pdf VIP
文档评论(0)