- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c课程设计(简易绘图程序)
目 录 1、需求与功能分析 2 2、系统总体框架 3 3、模块设计与分析 4 3.1画图模块 4 3.2贴图模块 4 3.3窗口模块 5 3.4菜单模块 5 3.5工具栏与状态栏模块 5 4、类的设计与分析 5 4.1、CAboutDlg类 5 4.2、CChildFrame类 5 4.3、CDib类 5 4.4、CDrawingDoc类 6 4.5、CDrawingView类 7 4.6、CMainFrame类 8 4.7、CSettingDlg类 8 5、特色算法分析 9 5.1 CDib类中的显示bmp位图 9 5.2 CDrawingView类中的画图部分 11 6、功能测试 14 7、存在的不足与对策 17 8、程序源代码 18 9、使用手册 18 10、参考文献 21 1、需求与功能分析 为了检验一个学期以来自己学习c++这门课程能够学到多少知识,加上原来就对图像处理就比较感兴趣,曾经更有想过要做一个可以合成红蓝3D图片的一款软件,就是那种需要带上红蓝眼镜才可以看到3D效果的那种图片,自己也有用photoshop做过这样的图片,但是photoshop需要调很多东西才能合成这样的图片,而且还要用相机送两个不同的角度拍两张照片作为源图片去合成红蓝3D图片,虽然我知道原理并不难,但是当我选择了” 简易绘图程序”这个课程设计的题目之后,才发现每实现一个功能都需要花很多的精力,而且实现那些功能之后还会发现各种各校的bug,需要细心去寻找解决的办法。如今课程设计也要上交,一样还有很多我想实现的功能都还没实现,最终也没有实现我想要实现的功能---合成红蓝3D图片。只做了一些简单的绘图功能。 功能分析,目前这个软件的主要功能有如下: 画直线:通过OnLine()函数实现。 画矩形:通过OnRectangle()函数实现。 画椭圆:通过OnEllipse()函数实现。 铅笔工具:可以画任意线条。通过OnPencil()函数实现。 橡皮擦:可以擦除所画的线条。该功能还没实现。 右键弹出菜单:可以在客户中点击鼠标右键,快速选择常用菜单。通过OnContextMenu函数实现。 状态栏显示鼠标移动的坐标:在程序的右下角显示,通过OnUpdateX(CCmdUI *pCmdUI)和OnUpdateY(CCmdUI *pCmdUI)这两个函数实现。 画图颜色选择:可以画任何颜色的线条,通过OnEditColor()函数实现。 读取bmp位图:可以在电脑中选择一个bmp位图,在程序中显示出来,通过新建一个Cdib类来读取bmp文件信息再view类和Doc类调用来显示该位图。 保存为bmp位图:可以将在程序所画的图形保存为一幅bmp图片,通过view中的SaveAsBmp(CString filename)实现。 线条类型及线宽的设置:可以将画出的线条设置成实线、虚线、点线,还可以设置线条的粗细,通过示例这一功能可以立刻显示所选择线条的粗细及线型。通过新建CSettingDlg类,再在view类中调用OnSetting()函数实现画笔的对话框,CSettingDlg类中的OnPaint()函数是实现示例功能的。 窗口的重绘时不擦除原来的内容:可以在窗口发生变化时,窗口的内容不消失,程序在窗口尺寸发生变化时,将会发送WM_PAINT消息,这时首先会擦除窗口背景,然后进行重绘操作,这样就把窗口中先前绘制的内容擦除了。我是使用双缓冲来解决这个问题的,双缓冲设计思路:如果只是为了让窗口闪烁不那么厉害,避免背景色的填充是最直接的办法。但是那样的话,窗体上会变的一团糟。因为每次绘制图象的时候都没有将原来的图象清除,造成了图象的残留,于是窗体重绘时,画面往往会变的乱七八糟。所以单纯的禁止背景重绘是不够的。我们还要进行重新绘图,但要求速度很快,于是想到了使用 BitBlt函数。它可以支持图形块的复制,速度很快。我们可以先在内存中作图,然后用此函数将做好的图复制到前台,同时禁止背景刷新,这样就消除了闪烁。以上就是双缓冲绘图的基本的思路。OnLButtonUp(UINT nFlags, CPoint point)函数里面,也有一部分打码写在了OnDraw(CDC* pDC)函数里面。 2、系统总体框架 图1 总体框架 3、模块设计与分析 3.1画图模块:该模块的大部份功能都写在了view类里面,这样造成了后期的修改造成了一定的影响,对于排错,修复bug增加了难度,对于初次使用mfc做一个相对大一点的程序,在函数分配,类的建立都有很多不足的地方。该模块也是此次程序的重点模块之一,主要
您可能关注的文档
- 2007版CAD操作教程与常用快捷键(经典自学材料).doc
- 17-牛顿环&劈尖的等厚干涉.ppt
- 2007高考理综化学部分(山东卷word含答案).doc
- 2008 标志设计趋势(英文版).doc
- 2008-08-18佰草集汉方SPA品牌规划书(低精)【策划方案】.ppt
- 2009CPA《税法》辅导教材(新)第01章税法概论.doc
- 2009CPA《税法》辅导教材(新)第04章营业税法.doc
- 2009各地高考模拟试题精选二(生活与哲学部分).doc
- 2009必威体育精装版中国通信设备制造业行业报告.doc
- 2010中考历史试题(全国通用).ppt
- CADCAM技术试卷(A卷)答案及评分标准.doc
- CA6140车床拨叉(831006型号)的机械加工工艺及加工孔φ25的钻床夹具设计.doc
- CAD 快速高手速成(.doc
- CAD培训教程6054886019【建筑资料】.ppt
- Cardiovascular Diseases In Dogs And Cats(犬猫心脏病).ppt
- Case Study Analysis_presentation_version Stephen(中英)案例分析.ppt
- CBT3253-94船用柴油机技术条件( 10).doc
- CCNA考试题库之二:必威体育精装版640-802 v13-2.doc
- CCNP综合实验(需求+配置).doc
- CENTUM CS3000工程师培训(第三天)(page55).ppt
最近下载
- 高中政治必修三政治与法治重点知识点归纳总结(复习必背).docx VIP
- Unit6+Understanding+Ideas高中英语外研版(2019)必修第三册.pptx VIP
- 高中物理人教版高三一轮复习牛顿第二定律之板块模型.pptx VIP
- 05-吹瓶生产工艺Krones吹瓶教程.ppt VIP
- 中外合作办学的可行性报告.pdf VIP
- 2025年[指南]胃息肉 .pdf VIP
- 函数专题二次函数在闭区间上的最值问题(5大题型).docx VIP
- 3.5.2 二次函数在闭区间上的最值问题-(必修第一册) (教师版).docx VIP
- 2025年招标资格证考试题库及答案(通用版).pdf VIP
- 办公设备维保服务办公设备维保方案.doc VIP
文档评论(0)