图形处理软件开发(vc++)学士学位论文.doc

上传人:F****n 文档编号:101938237 上传时间:2019-09-30 格式:DOCX 页数:49 大小:374.04KB
返回 下载 相关 举报
图形处理软件开发(vc++)学士学位论文.doc_第1页
第1页 / 共49页
图形处理软件开发(vc++)学士学位论文.doc_第2页
第2页 / 共49页
图形处理软件开发(vc++)学士学位论文.doc_第3页
第3页 / 共49页
图形处理软件开发(vc++)学士学位论文.doc_第4页
第4页 / 共49页
图形处理软件开发(vc++)学士学位论文.doc_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《图形处理软件开发(vc++)学士学位论文.doc》由会员分享,可在线阅读,更多相关《图形处理软件开发(vc++)学士学位论文.doc(49页珍藏版)》请在金锄头文库上搜索。

1、摘要摘 要在现代社会中,电脑被视为视觉艺术中越来越常用的工具。原本依托于纸张的信件和绘画,依托于胶片的照相摄影及医学检查,它们均在慢慢向电子化与网络化发展。各种显示设备已经能够满足人们对于图像几乎所有的需求。因此,人们也需要能够在显示屏上像用纸和笔一样进行绘画。这篇论文针对这一需求,提出了使用VC+利用微软公司的MFC类库,在Windows平台上制作一个简易的、轻量的、低学习成本的画板程序的方法。关键词:MFC,C+,图形图像编程,画板程序非物质文化遗产是指各族人民世代传承的,与群众生活密切相关的各种传统文化表现形式和文化空间,包括民俗活动、表演艺术、传统知识和技能以及与之相关的器具、实物、手

2、工制品等IABSTRACTABSTRACTIn modern society, computers are seen as more and more commonly used in visual arts. Letters and paintings were originally based on paper, photography and medical check were originally based on film, but now they are becoming electronic and networked. A variety of display device

3、s have been able to meet peoples demand for almost all images. Therefore, people also need to be able to paint on the screen like using paper and pen. In response to this demand, this paper presents a method of making a drawing board program with using Microsofts MFC class library in Visual C+, whic

4、h is lightweight and low learning costs.Keywords: MFC, VC+, Graphic image programming, Drawing board program 45目录目录第一章 绪论11.1 数字图像的发展11.2 绘图软件的发展现状11.3 编程语言简介21.4 本文主要研究内容3第二章 编程基础42.1 编程原理42.1.1 C语言编程原理42.1.2 面向对象编程52.1.3 类简介52.1.4 MFC简介62.2 程序创建原理72.2.1 创建源代码文件82.2.2 编译和链接92.3 本章小结10第三章 MFC程序的实现11

5、3.1 创建MFC应用程序框架113.2 控件113.2.1 静态控件133.2.2 编辑框控件143.2.3 按钮163.2.4 组合框203.3 图形图像编程243.3.1 GDI坐标系与映射模式253.3.2 颜色和颜色设置263.3.3 GDI对象263.3.4 画笔工具273.3.5 图形绘制工具283.3.6 画刷工具293.4 本章小结30第四章 总结31致 谢32参考文献33附 录34外文文献原文39外文文献译文44第一章 绪论第一章 绪论1.1 数字图像的发展有证据表明,在书面沟通之前,绘画是人类表达思想的最古老形式之一1。大约3万年前,在书面语言发明之前,绘画就已经作为智人

6、专门的交流方式出现在他们洞穴的壁画及岩画中2。那些图形被称为象形图,描绘其所指对象的抽象概念3。史前时期的草图和绘画不断的被风格化和简化,推动了书面语言的产生发展。绘画在人类历史上一直是公众表达的流行和基本手段。它是传达视觉想法的最简单和最有效的手段之一4。绘画是使用各种各样的工具和技术制作图像的手段。传统的绘画过程使用铅笔、钢笔、刷子、蜡笔、木炭和(或)粉彩。在数字化的绘图软件中,很多基础工具都对实物工具进行的模仿与改进,如直线工具、铅笔工具、矩形和椭圆工具、橡皮擦工具及字符输入工具等。视觉艺术家已经不再局限于传统的艺术媒体。20世纪60年代以来,电脑被视为视觉艺术中越来越常用的工具。其用途

7、包括捕获或创建图像,编辑以及最终的渲染和打印。对于电脑的使用模糊了插画师、摄影师、照片编辑、3D建模工作者和工艺品艺术家之间的区别。复杂的渲染和编辑软件促成了多技能的图像开发人员的出现。艺术家等创作者更愿意使用个人电脑进行创作。因为使用绘图软件比传统方法需要较少的手眼协调,较少的想象能力,同时利用计算机的自动渲染功能可以更高效的(有时更准确的)来创建图像。然而,随着计算机计算能力的提升,绘图软件的风格、特效和编辑方法复杂多样,可能需要比传统绘画更多的学习成本,并且这一成本随着对软件掌握的程度直线上升。此时软件是激发还是压抑创造力就取决于其界面的直观性5。1.2 绘图软件的发展现状图形从广义上说

8、,是能在人的视觉系统中形成视觉印象的客观对象。计算机图形学由Ivan Sutherland于1962年提出,并于近些年来飞速发展。计算机图形学是计算机科学的重要分支。目前图形的应用软件很多,例如Photoshop,AutoCAD等,但就开发图形系统本身来说,仍需构筑其底层平台,以便研究新的算法,扩充新的功能,加快图形处理速度,产生更加逼真的造型效果。Visual C+作为一种通用的软件开发工具,目前仍然是开发底层软件不可或缺的平台。本次研究正是基于这些因素,利用MFC的基础类库开发一个基本绘图环境,力求为图形系统的进一步开发研究提供一个良好的平台5,6。图形是Windows应用程序的重要组成部

9、分,优美的图形界面是所有成功软件的共同特点。VC+是当前最为流行的基于Windows的开发工具之一,其功能的强大,精通VC+是不少程序开发人员的努力方向。在VC+中,每一项功能的实现都有着严密的逻辑与算法,只有清楚功能背后的原理与方法,才能做到运用自如。VC+的编程方式有两种,一种是直接使用API函数,另一种是使用MFC类库。第一种方式是传统的Windows编程方式,保留传统编程中面向过程的特征。第二种方式下MFC把API函数封装到各种类与对象内,是面向对象与Windows编程的有机结合,真正体现出了VC+编程的风格。本文具体分析MFC方式下实现绘图功能的几个关键问题,并给出具体实例。1.3

10、编程语言简介在过去的几十年,计算机技术以令人惊讶的速度发展,编程工作也随之发生翻天覆地的变化,程序员不再需要将穿孔卡片提交给充斥整个房间的大型计算机系统,而这种系统可能只有100KB的内存。计算机语言也得到了发展,尽管变化可能没有更大,但也是非常重要的。体积更大、功能更强的计算机引出了更大、更复杂的程序,而这些程序在程序管理和维护方面又带来了新的问题。20世纪70年代,C和Pascal语言标志着进入结构化编程时代,同时C语言还能生成简洁、快速运行的程序,并提供了处理硬件问题的能力。这些因素使C语言成为20世纪80年代占统治地位的编程语言。同时,20世纪80年代,人们也见证了一种新编程模式的成长

11、:面向对象编程(Object Oriented Programming,OOP)。20世纪70年代早期,贝尔实验室的Dennis Ritchie致力于开发UNIX操作系统。完成这项工作需要一种语言,它必须能够生成简洁、快速的程序,并能有效地控制硬件。传统上,程序员使用汇编语言来满足这些需求,汇编语言依赖于计算机的内部机器语言。然而,汇编语言是低级语言,即直接操作硬件,如直接访问CPU寄存器和内存单元,因此汇编语言针对于特定的计算机处理器。如果想将汇编程序移植到另一种计算机上,必须使用不同的汇编语言重新编写程序。然而UNIX是为在不同的计算机或平台上工作而设计的,这意味着需要一种高级语言。高级语

12、言致力于解决问题,同时不会专用于特定的硬件,编译器则将高级语言翻译成特定计算机的内部语言。这样,就可以通过对于每个平台使用不同的编译器,而实现不同平台上使用同一个高级语言程序了。Ritchie希望有一种语言能将低级语言的效率、硬件访问能力和高级语言的通用性、可移植性融合在一起,于是他在旧语言的基础上开发了C语言。“C+主要是为了我的朋友和我不必再使用汇编语言、C语言或其他现代高级语言来编程而设计的。它的主要功能是可以更方便地编写出好程序,让每个程序员更加快乐”。C+发明者Bjarne Stroustrup如此认为。Stroustrup比较关心的是让C+更有用,而不是实施特定的编程原理或风格。在

13、确定C+语言特性方面,真正的编程需要比纯粹的原理更重要。C+是C语言的超集,这意味着任何有效的C程序都是有效的C+程序。它们之间有些细微的差异,但C+程序仍可以使用已有的C软件库。库是编程模块的集合,可以从程序中调用它们。库对很多常见的编程问题提供了可靠的解决方法,因此能节省程序员大量的时间和工作量。这也有助于C+的广泛传播。名称C+来自C语言中的递增运算符+,该运算符将变量加1。名称C+表明,它是C的扩充版本。1.4 本文主要研究内容本文主要研究在Visual Studio平台下使用VC+的MFC基础类库实现一个画板程序的基本功能,其功能包含有:铅笔工具,可自定义绘制的线形与粗细;直线工具,

14、可自定义绘制的线形与粗细;矩形、圆角矩形与椭圆工具,可自定义所绘图形的填充物。以XY轴坐标方式定位光标位置,方便精细操作;支持以jpg、bmp等格式保存文件。其中,绘图工具均支持选择黑色、蓝色、绿色、红色、白色或自定义颜色。第二章 编程基础第二章 编程基础2.1 编程原理C+融合了3种不同的编程方式:以C语言代表的过程性语言;C+在C语言基础上添加的类代表的面向对象语言;C+模板支持的泛型编程。编程技术人员使用C+的原因之一就是为了利用其面向对象的特性。而要利用这种特性,就需要对标准C语言知识有较深入的了解,因为C+与C语言存在一些共有特征:C语言提供了基本类型、运算符、控制结构和语法规则。但

15、这并不仅仅是学习更多的关键字和结构。初学者在掌握了C之后学习C+,其学习量与从头学习C语言一样大。另外,如果不了解C语言,则学习C+时需要掌握C语言知识、面向对象编程知识以及泛型编程知识。2.1.1 C语言编程原理由于C+在C语言的基础上移植了新的编程理念,因此我们首先来看一看C所遵循的旧的理念。一般来说,计算机语言要处理两个概念数据和算法。数据是程序使用和处理的信息,而算法是程序使用的方法。C语言与当前主流的语言一样,在最初面世时也是过程性语言,这意味着它强调的是编程的算法方面。从概念上说,过程化编程首先要确定计算机应采取的操作,然后使用编程语言来实现这些操作。随着程序规模的扩大,早期的程序语言都会遇到组织方面的问题。例如,程序经常使用分支语句,根据某种测试的结果,执行一组或另一组指令。很多旧式程序的执行路径很混乱,几乎不可能通过阅读程序来理解它,修改这种程序简直是一场灾难。为了解决这种问题,计算机科学家开发了一种更有序的编程方法结构化编程。C语言具有使用这种方法的特性。例如,结构化编程可以将分支限制为一小组行为良好的结构。C语言的词汇表中就包含了这些结构(for循环、while循环、do while循环和if else语句)。另一个新原则是自

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号