已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉工程大学计算机科学与工程学院 综合设计报告 - - 1 简单图形绘制系统设计方案 第一章 课题背景 引言 计算机技术的发展,使人类社会进入了信息化和自动化,计算机智能识别也随 着计算机的发展得到了迅速的发展。特别是图形图像的计算机处理技术更是有了前 所未有的进步和应用。计算机识别也逐渐的从图形图像处理的大环境下分离出来作 为一门新的高科技研究领域出现。画图涉及到的学科很多,包括数字信号处理、工 程数学、信息论、运筹学等,它与计算机、自动化、生物学、视觉心理和生理学、 人工智能、智能信息处理等众多领域交叉、综合集成,有广泛的应用。 该软件功能与 附件中的画图软件有相似功能。本程序是在 台上用 编。绘制方面的功能主要包括绘制各种图元,包括直线、矩形、椭 圆,用笔或画刷自由绘图。绘图时可以选择各种颜色,各种线型和线宽。 该软件设计的设计思想是面向对象程序设计的思想。 面向对象技术是一个非常实用而强有力的软件开发方法。它具有许多特色。一是方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。二是从生存期的一个阶段到下一个阶段的高度连续性,即在一个阶段所用到的部分与在下一个阶段所使用的部分是衔接的,所使用的技 术经过生存期每一阶段后不改变。三是把面向对象分析( 、 面向对象设计( 面向对象程序设计( 成到生存期的相应阶段。 笔者作为一个初学者,所学知识有限,做这个软件主要是为了测试近期的学习成果,方便了解对 学习掌握程度,以便于后期的学习。该程序中基本上包含了笔者这一段时间在 付出的所有努力。软件又 文档类工程为主要载体,其中菜单、对话框的创建以及各种消息的响应, 函数的调用等,其创建过程能看出一个初学者由浅入深的过程。软件的预期是能成为一个电脑绘图的辅助功能存在 ,可是软件完成后绘图功能上依然有许多方面不能满足需求。希望读 者提出宝贵的意见和建议。 武汉工程大学计算机科学与工程学院 综合设计报告 - - 2 第二章 设计简介及设计方案论述 计目的 培养学生对科学研究的认识,掌握基本的科研方法;培养学生分析问题、研究问题和解决问题的能力;培养学生动手能力和编程能力以及自主查阅资料的能力。 计思路 设要求 完成简单图形的绘制系统: 实现直线,矩形,圆的绘制,并能设置线型,线宽和颜色;实现图形的重绘和保存功能;实现在状态栏动态显示当前时间功能。 目分析 题 目要求设计一个简单的绘图系统,程序功能要求简单,可以用一个简单的窗口菜单程序解决。对题目要求的绘制图形和线条更改,使用菜单响应会很容易解决,至于图形的重绘和保存,状态栏的时间显示虽然使用的函数较为复杂,看似麻烦,实际上函数框架简化出来后很容易理解,响应功能的代码量也相对较少。 计原理 我创建的是一个单文档类的 程(图 2 2在该工程里,我使用菜单(图 2 2对话框(图 2现了题目要求的简单绘图设计。 武汉工程大学计算机科学与工程学院 综合设计报告 - - 3 图 2建 用程序 武汉工程大学计算机科学与工程学院 综合设计报告 - - 4 图 2建单文档类 程 武汉工程大学计算机科学与工程学院 综合设计报告 - - 5 图 2击 建菜单 武汉工程大学计算机科学与工程学院 综合设计报告 - - 6 图 2立如图菜单项 图 2立如图所示对话框 武汉工程大学计算机科学与工程学院 综合设计报告 - - 7 第三章 详细设计 单的响应 菜单的创建 首先建立一个但文档类型的 程,工程名为:简单绘图演示(图 2 2然后打开资源视图,找到“菜单” -“ 双击“ 建菜单(见图 2 2建立的菜单如图 4 所示。 单的响应 菜单建好后,要为所建立的菜单添加消息响应函数,这样所建立的菜单才能被加载入程序(斜体部分为添加的消息响应函数,图 3 例 3 简单绘图演示 / 在此添加命令处理程序代码 简单绘图演示 / 在此添加命令处理程序 代码 简单绘图演示 / 在此添加命令处理程序代码 武汉工程大学计算机科学与工程学院 综合设计报告 - - 8 图 3类向导中响应创建的菜单项 (响应项 别对应圆、直线、矩形) 接着,为 C 简单绘图演示 加私有成员变量 3具 体的添加成员变量操作), 并将 始化为 0(斜体为 始化过程)。 例 3 C 简单绘图演示 C 简单绘图演示 : ) / 在此处添加构造代码 ; 武汉工程大学计算机科学与工程学院 综合设计报告 - - 9 图 3 量初始化后再为响应函数赋值(斜体为赋值过程) 例 3 简单绘图演示 / 在此添加命令处理程序代码 ; 简单绘图演示 / 在此添加命令处理程序代码 ; 简单绘图演示 武汉工程大学计算机科学与工程学院 综合设计报告 - - 10 / 在此添加命令处理程序代码 ; 赋值完成后,即要开始让程序绘图了,谈到绘图自然就想到了绘图的必要工具 画笔和画刷,当然,当我们调用绘图函数的时候其实系统已经提供了一个默认的画笔很画刷。如果要自定义更改画笔和画刷的颜色,类型就需要另外调用申明了。现在先使用默认工具响应图像的绘制,自定义画笔画刷后面会讲到。 对于直线、矩形和圆,在绘图是都可以由 2 个点来确定其图形。当鼠标左键按下时得到一个点,当鼠标左键松开 时又会得到一个点。也就是说,在鼠标左键按下时将当前点保存为绘图原点,当鼠标左键松开时,就可以绘图了。因此就需要为视类( C 简单绘图演示 别捕获鼠标左键按下和左键松开这两个消息。另外,当鼠标左键按下时,需要将鼠标当前按下点保存起来,因此为 C 简单绘图演示 再增加一个 在 C 简单绘图演示 构造函数中,将该变量的值设置为 0,即将原点设置为( 0, 0)。 然后,在鼠标左键按下消息响应函数中,保存当前点,代码如例 3体)。 例 3 简单绘图演示 / 在此添加消息处理程序代码和 /或调用默认值 在鼠标左键松开消息响应函数中实现绘图功能,具体代码如例 3体)。 例 3 简单绘图演示 / 在此添加消息处理程序代码和 /或调用默认值 dc( 武汉工程大学计算机科学与工程学院 综合设计报告 - - 11 : ; : ; : 好了,绘图响应函数完成了,试运行看看程序是否能完成绘图操作。为了进行绘图,首先需要有 象,例 3示代码中首先定义了一个 型的变量:后将已经保存在变量 用户选 择调用出来,选择 句来分别完成绘图,完成用户的不同选择。程序运行结果 (图 3 武汉工程大学计算机科学与工程学院 综合设计报告 - - 12 图 3单绘图程序运行显示 从运行结果图中可以发现该程序绘制的图形都是黑色的,而且图形中绘制的圆也不是圆,而是一个椭圆,当一个图形在另一个图形上绘制的时候会将之前的图形覆盖掉。 为了有效的解决程序中发现的问题,我们一个一个分析: 1、 图形显示为黑色,是因为系统默认的画笔和画刷都是黑色的,要想程序输出不用的颜色,这就需要为程序重新申明一支画笔和画刷; 2、 绘制的圆是椭圆的原因是因为我们调用的是椭圆的绘制函 数,在几何上,圆是椭圆的特殊形态,当椭圆的长轴和短轴相等时,椭圆就成了一个圆,换句话说就是当椭圆的外接矩形是一个正方形时,这是的椭圆就是圆,而椭圆的绘制函数就是通过外接矩形的左上角坐标和右下角坐标来绘制的,所以在获取椭圆的参数时,只要将左上角和右下角两个坐标的 x,y 的差取等即可; 3、 图形会被覆盖是因为程序默认的画刷类型是一个白画刷,若是想看到图形里面的内容,只需要将画刷类型改为透明即可。 程序更改如例 3体,粗体部分为修改后的内容) 例 3 简单绘图演示 武汉工程大学计算机科学与工程学院 综合设计报告 - - 13 / 在此添加消息处理程序代码和 /或调用默认值 dc( ,55,0,0); ; : x,y,x,y+ : ; : 运行结果 (图 3 武汉工程大学计算机科学与工程学院 综合设计报告 - - 14 图 3改后程序运行结果图 从图中可以看到之前的问题已经被解决了。 置对话框 基本绘图功能已经实现,现在给“简单绘图演示”程序加上其他功能 线宽、线型和颜色按钮设置。(对话框建立 如第二章图 2 对话框建好后,为此对话框建立一个响应的对话框类。 武汉工程大学计算机科学与工程学院 综合设计报告 - - 15 图 3对话框建立相应的对话框类 响应对话框,创建一个响应消息(如例 3体部分)。 例 3 简单绘图演示 / 在此添加命令处理程序代码 ) 武汉工程大学计算机科学与工程学院 综合设计报告 - - 16 响应消息是应该注意添加头文件 #其中 量的申明见图 3明后在 C 简单绘图演示 初始化为 0。 图 3编辑框和单选框添加变量 得到线宽和线型的变量后,在例 3已经保存赋值,接 着就要使用了,线宽线型都 是 对 画 笔 的 变 量 , 自 然 使 用 在 画 笔 函 数 中 , 先 前 定 义 的 画 笔 ,55,0,0);其中三个参数分别对应线型线宽和颜色,将线型和线宽参数用变量 替即可实现对画笔线型和线宽的更改,更改如下 : 例 3 武汉工程大学计算机科学与工程学院 综合设计报告 - - 17 55,0,0); 更改后运行结果如图 3图 3型线宽实现后的运行结果 色对话框 在先前对话框建立的时候,可以看到一个“颜色选择”按钮,该按钮是对画笔颜色进行自定义的控件。 我们提供了一个类: 以很方便地创建颜色对话框。 在 应按钮“颜色选择”: 例 3 / 在此添加控件通知处理程序代码 = ) 武汉工程大学计算机科学与工程学院 综合设计报告 - - 18 其中 一个 型的变量,该变量在 申明,是一个 后在 C 简单绘图演示 应 息中添加如下粗体代码: 例 3 简单绘图演示 / 在此添加命令处理程序代码 ) 其中 在 C 简单绘图演示 定义的 型的 员变量。做完这些后,再次更改画 笔参数中的颜色参数,更改如下: 响应后运行结果如图 3 武汉工程大学计算机科学与工程学院 综合设计报告 - - 19 图 3色对话框改变画笔颜色 态栏时间设置 通过第三章的前三节,我们已经创建了一个可以绘制圆、矩形和直线的简单绘图程序,该程序已经能够实现对,下面我们来扩展下程序对系统时间的响应。 首先增加一个名为时钟的字符串资源,创建方式:双击 件夹下的,打开 C 简单绘图演示程序的字符串资源,在其中添加一个“ 钟”的字符串资源。然后在 源文件的前部定义: 例 3 = / 状态行指示器 武汉工程大学计算机科学与工程学院 综合设计报告 - - 20 ; 为了在状态栏上显示时间的静态文本,在程序的 要在其 句前添加例 3示代码。 例 3 t=; %H:%M:%S); dc( sz= ; ,1000, 其中 是一个定时器,起功能是 1000 毫秒触发一次定时器消息,加粗部分功能是获取输出文本显示是占据的宽度,然后直接用这个宽度去修改窗格的宽度。 此时我们已经获得了当前的系统时间,但是这个时间是静止的,我们要想它实时的显 示系统当前的时间,就必须让这个时间“动起来”。我们已经设置了一个定时器,没一秒发送一次 时器消息,那么我们就可以在该定时器消息响应函数中再次获得系统当前时间,并设置状态栏窗格的文本。加入代码如例 3 例 3 / 在此添加消息处理程序 代码和 /或调用默认值 t=; %H:%M:%S); dc( sz= , , 武汉工程大学计算机科学与工程学院 综合设计报告 - - 21 此时运行程序可以看到状态栏中的时间已经“动起来”了。 形的保存和重绘 程序运行后似乎没什么问题了,可是当我们放大或缩小窗口时,我们在窗口中绘制的图形会神奇的消失掉。这是因为当窗口尺寸发生变化时,引起窗口重绘,会发送息,这是首先会擦除窗口的背景,然后再进行重绘操作,这样就把窗口中先前绘制的图形擦除掉了 。如果希望所绘制的图形始终在窗口中呈现出来,就需要将这些图形保存起来,然后当窗口尺寸发生变化引起窗口重绘时,将这些图形再次在窗口中输出。当窗口重回是总是会调用程序视类的 数,因此我们可以在该函数中完成图形的输出。而保存图形的方式多种多样,对于本程序来说,只需要绘制时的起点、终点和绘制的类型(圆、矩形或直线)就可以了。 此时我们要新建一个类: 增类类型为: 为新增类添加成员变量: 例 3 ; 在 初始化变量: 例 3 武汉工程大学计算机科学与工程学院 综合设计报告 - - 22 在 C 简单绘图演示 类 加入如下代码: 例 3 简单绘图演示 *) C 简单绘图演示 ; !( ; i=0;(i)-(i)- (i)- : (i)-(i)-(i)-(i)-(i)-i)- : (i)-(i)-; : (i)- (i)- 武汉工程大学计算机科学与工程学院 综合设计报告 - - 23 可以看到,代码中调用了一个 针 ,其定义如下: 例 3 简单绘图演示 / 在此添加消息处理程序代码和 /或调用默认值 dc( ; : : x,y,x,; : ; 现在运行程序,并改变窗口大小,发现图形不再消失了。 武汉工程大学计算机科学与工程学院 综合设计报告 - - 24 图 3行后改变窗口大小后的结果 武汉工程大学计算机科学与工程学院 综合设计报告 - - 25 第四章 设计结果及分析 序的功能 程序的基本功能:实现了,简单的绘制直线、矩形和圆,实时的显示系统当前时间,并 且能自定义的改变线宽和线型以及选择画笔的颜色。 运行界面: 图 4单绘图程序的运行界面 程序的缺点 功能限制只能绘制直线、矩形和圆,而且图形没有填充效果,只能改变画笔的颜色和类型,不能算是一个完整的程序。 武汉工程大学计算机科学与工程学院 综合设计报告 - - 26 总 结 其实学任何一种语言都是一样的。需要勤奋 +毅力 +运气 =成功,这是我认为的一个公式。这里毅力和勤奋是个人因素,而运气这是先天的。如果以前没有接触过编程语言的话,在接触 我建议你先学习一些基础语言,比如 C 等都是一些比较好学的基础语言,我当初就是从 C 语言 过度学 。学基础语言的目的是学习语法结构和如何编写概念,只有你理解和掌握了这些编程用的工具才能学习高级语言。这些基础语言中我建议大家学 C 语言,其实 是 C+也就是 C 语言的 儿子 , 父亲 学习起来比较容易上手,但遇到类似 程序的时候比较固执不容易沟通,在这种条件下才有了 儿子 , 儿子 比较开朗应变能力强,但是就因为他这些优点才使初学者难以掌握。 C+语言,是一种面向对象的编程语言。他于基础语言不同点在于,基础语言是一条路走到底的(中断技术除外),而面 向对象是等待你的指令才往下走,是被动的编程语言。这点是学习 必须扭 转的概念。 通过这次学年设计,我了解 是 台上的 C+编程环境,学习 了解很多台的特性并且还要掌握 的知识,难度 比较大。编程需要了解 消息机制以及回调( 数 的原理; 包装类, 需要理解文档视图类的结构, 窗口类的结构,消息流向等等; 代码共享的二进制标准,需 要掌握其基本原理等等。基于我们这次用 编写了一个简单的画图板,功能不是很多,但是从中的到不少收 获。主要有: 1对项目和文档的了解,我们在编写程序时,要对不同的文件进行编写。其中项目就是文件的集合,包括头文件、源代码文件、资源文件。文档窗口也称编辑窗口,是用户进行输入或编辑头文件、源文件、资源的区域。在编辑文件时,为了增加程序的可读性,系统用绿色显示注释语句,用蓝色显示关键字。 2菜单:我们绘制画图板时,就要建立一个“绘图”菜单。对于“绘图”菜 单下还有几个子菜单项,通过建立菜单同时让它实现菜单 上的命令,这就要我们对 每个菜单项进行设置,诸如, 题、快捷键、热键等。还有一些属性设置,设 置不好,容易出错,所以每次建立菜单,都需谨慎设置,记住每个菜单对应的参数。 于我们绘制出一幅图武汉工程大学计算机科学与工程学院 综合设计报告 - - 27 片,那么我们就要把它保存下来。 如果我们无法保存,我们做了也就没没什么意义了。对于图形的保存于打开,我们 还存在很多问题,自定义保存不同文件夹下尚未解决,所以还需要我们进一步的学 习和了解,争取实现我们心里多希望的。 来的图形会消失,后来查看相关资料,这里涉 及的一个重绘问题。经过多次修改,添加代码,才得 以解决。所以我觉得学习 就要拿出那种坚持不懈的精神,做什么也是,只有你不放弃对它了解,才会实现我们自己想要的,这就要我们要不断的学习 ,从中学习更多我们没了解到的知识。 5对于 图,经过查询主要是负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应) 。最重要的是 绘窗口 ),通常用 来启动它。另外,它通过消息映射表处理菜单、 工具条、快捷键和其他用 户消息。 最后通过学习 ,从中受益匪浅,更多的知识,还有待于我们去挖掘实现 更多有趣的东西,同样它也是一个很强大的软件。 武汉工程大学计算机科学与工程学院 综合设计报告 - - 28 致 谢 经过近两周的努力,本次课程设计已经接近尾声,但由于自身知识、经验、能力、时间的有限,本设计中难免会有许多考虑不周全的地方。如果没有老师的督促指导,以及一起学习的同学们的帮助,想要顺利完成这个设计是很难的。 在这次课程设计中,感谢老师 ,感谢我的组员们,没有我们的精诚合作,就没有我们出色的成果,同时,也要感谢其他组的同学 ,在我们有疑问的时候,给予了及时的解答,及时的提醒让我们少走很多弯路。还有, 我的 课程设计指导老师鲁统伟 老师在课程设计上给予我 了 指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师 利用自己渊博的知识以及丰富的设计经验 帮我解决了许多技术上的难题,让我能 在整个课程设计中 做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的 程序 设计能力。 武汉工程大学计算机科学与工程学院 综合设计报告 - - 29 参考文献 【 1】 孙鑫 余安萍 编著 . 深入详解【 M】 . 电子工业 出版社出版, 339【 2】 谭浩强 主编 宋金珂 高丽华 张迎新 编著 . 程序设计基础教程【 M】 清华大学出 版社出版, 【 3】 黄维通 . +面向对象与可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考物理复习主题单元7第18课时机械效率课件
- S版六年级上册语文表格式教案
- 《两只小象》教学反思
- 城市建设挖掘机月租赁合同范本
- 医疗器械代发工资承诺书
- 六年级语文上册部分教案
- 水文观测防尘网施工合同
- 石油化工产品进口许可合同模板
- 乐器制造厂聘用合同模板
- 房地产销售投诉处理规范
- 2024年企业业绩对赌协议模板指南
- “全民消防生命至上”主题班会教案(3篇)
- 上海市普陀区2024-2025学年六年级(五四学制)上学期期中语文试题
- 2024黔东南州事业单位第二批遴选人员调减遴选历年高频难、易错点500题模拟试题附带答案详解
- 采伐树木合同模板
- 培训师破冰游戏大全课件
- 2024版成人术中非计划低体温预防与护理培训课件
- 期中测试卷-2024-2025学年统编版语文三年级上册
- 综合素质评价平台建设方案-2024
- 广东省珠海市紫荆中学2025届高二数学第一学期期末达标检测试题含解析
- 2024屋顶分布式光伏场站设备运维规程
评论
0/150
提交评论