- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《计算机图形学》程序设计报告
计算机图形学课程设计程序设计报告题目:C1 用面向对象技术实现一个类似于Windows画板的程序,要求实现其中的主要交互绘图技术。学院:同济大学电子与信息工程学院专业:计算机科学与技术学号:099910姓名:耿康康2011年7月程序设计报告设计目标和要求1、目标:实现类似于Windows画图程序的基本交互功能,利用Windows编程开发出简单的可视化界面,2、要求:可以实现直线、矩形、圆弧等基本的图元操作,可以改变图形线框的宽度和颜色,可以填充图形,带有可视化的快捷操作图标,具有图形的打开和保存等功能。算法原理介绍本程序是基于Windows编程,改变了传统的DOS应用程序的设计模式。在DOS模式下,应用程序是封闭的,从入口到出口,层层调用,环环相扣,构成了一条完整的程序链。而Windows应用程序则采用一种“事件驱动,消息激励”机制,在这种机制下传统的程序结构形式被打破,大量的响应函数构成了程序的主体,当系统或用户触发了某个事件(如定时时间到、用户点击鼠标等),便会产生与该事件关联的消息,然后通过消息去激励相应的响应函数,从而完成既定目标或任务。本程序是MFC中的单文档窗口应用程序,利用MFC AppWizard(exe)构建了一个名为huatu的工程。利用了Resource Symbols定义了几个菜单的ID,使它们具有连续的ID值,这样就可以用一个共同的响应函数。在菜单和工具栏做好之后,就进入了程序的代码设计阶段,首先要在ChuatuView类中添加成员变量并初始化,成员函数以及初始化代码在系统设计与实现中具体给出。接着在视类的构造函数(CHuatuView::CHuatuView())初始化部分成员变量,在析构函数(CHuatuView::~CHuatuView())中释放指针变量占用的内存。然后在视类中添加VM_CREATE消息响应函数也就是添加了消息处理函数OnCreate(),加入相应代码。菜单项的响应函数不能像其他程序一样通过ClassWizard添加,因为是几个菜单项共同使用一个响应函数,所以必须人工添加相应代码。然后添加OnSelectDrawType()、OnUpdateSelectDrawType()、OnDrawLineWidth()、OnDrawLinecolor()、OnDrawFillcolor()等函数以及代码。因为要用鼠标画图,需要添加三个鼠标消息响应函数,要处理的三个消息是WM_LBUTTONDOWN(左键按下)、WM_LBUTTONUP(左键松开)、WM_MOUSEMOVE(鼠标移动),可以用ClassWizard自动生成这三个消息处理函数,然后加入相应的代码即可。最后修改OnDraw()函数以及光标处理函数。本程序大概原理已经介绍完毕。系统设计以及实现本程序在Windows XP、 Microsoft Visual C++6.0中设计与实现3.1.建立画图应用程序 1.打开VC++6.0,如下图所示2.选择filenew选项,打开新建对话框选择project标签下的MFC AppWizard(exe)选项,在右边的Project name中输入工程名字huatu,在Location下选择存放路径,勾选Platform下的Win32选项,点击OK.3.在MFC AppWizard-Step1中选择Single document选项4.在Step2到Step6均选择默认Step2 单击NextStep3 单击NextStep4 单击NextStep5 单击NextStep6 单击Finish,完成创建,应用程序界面如下图所示到此本程序的框架已经构建完成,接下来就是添加具体图元及代码。3.2创建菜单以及工具栏1.创建菜单打开Resource View中的Menu选项,双击IDR_MAINFRAME即可出现如图的菜单栏。首先我们给菜单栏添加两个菜单“画图,设置”在“画图”下添加直线、矩形、椭圆、填充等菜单项在“设置”下面线宽、线色、填充色等菜单,在线宽下添加one, two, three, four, five菜单项为这些菜单项添加的ID以及Caption如下表菜单项IDCaption属性直线ID_DRAW_LINE直线(L)\tCtrl+L矩形ID_DRAW_RECTANGLE矩形(R) \tCtrl+R 椭圆ID_DRAW_ELLIPS椭圆(E) \tCtrl+E填充ID_DRAW_FILL填充(F) \tCtrl+F线宽线宽Pop-up线色ID_DRAW_LINECOLOR线色(C)填充色ID_DRAW_FILLCOLOR填充色(O)oneID_DRAW_LINEWIDTH_ONEonetwoID_DRAW_LINEWIDTH_TWOtwothreeID_DRAW_LINEWIDTH_
您可能关注的文档
- Xstrata并购历史分析.doc
- XT型高效填料气体净化塔操作规程 一、原理 XT型高效填料气体净化塔 .doc
- XXXXXX中心中学网络安全管理制度.doc
- XXXXXXWLAN无线网络测试报告.doc
- XXXX企业文化建设规划.doc
- xxxx公司弱电系统工程监网络综合布线测试报告.doc
- XXXX兽药有限公司GMP实施情况汇报.ppt
- XXXX有限公司岗位说明书.doc
- xxxx公司人事管理信息系统分析说明书.doc
- XXXX铝合金门窗工程设计方案总体说明.doc
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
文档评论(0)