




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要I摘 要在现代社会中,电脑被视为视觉艺术中越来越常用的工具。原本依托于纸张的信件和绘画,依托于胶片的照相摄影及医学检查,它们均在慢慢向电子化与网络化发展。各种显示设备已经能够满足人们对于图像几乎所有的需求。因此,人们也需要能够在显示屏上像用纸和笔一样进行绘画。这篇论文针对这一需求,提出了使用 VC+利用微软公司的 MFC 类库,在 Windows 平台上制作一个简易的、轻量的、低学习成本的画板程序的方法。关键词:MFC,C+,图形图像编程,画板程序ABSTRACTIIABSTRACTIn 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 devices 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+, which is lightweight and low learning costs.Keywords: MFC, VC+, GraphiABSTRACTIIIcimageprogramming, DrawingboardABSTRACTIVprogram目录V目 录第一章 绪 论 .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 程序的实现 .113.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目录VI第四章 总 结 .31致 谢 .32参考文献 .33附 录 .34外文文献原文 .39外文文献译文 .44第一章 绪论1第一章 绪 论1.1 数字图像的发展有证据表明,在书面沟通之前,绘画是人类表达思想的最古老形式之一 1。大约 3 万年前,在书面语言发明之前,绘画就已经作为智人专门的交流方式出现在他们洞穴的壁画及岩画中 2。那些图形被称为象形图,描绘其所指对象的抽象概念 3。史前时期的草图和绘画不断的被风格化和简化,推动了书面语言的产生发展。绘画在人类历史上一直是公众表达的流行和基本手段。它是传达视觉想法的最简单和最有效的手段之一 4。绘画是使用各种各样的工具和技术制作图像的手段。传统的绘画过程使用铅笔、钢笔、刷子、蜡笔、木炭和(或)粉彩。在数字化的绘图软件中,很多基础工具都对实物工具进行的模仿与改进,如直线工具、铅笔工具、矩形和椭圆工具、橡皮擦工具及字符输入工具等。视觉艺术家已经不再局限于传统的艺术媒体。20 世纪 60 年代以来,电脑被视为视觉艺术中越来越常用的工具。其用途包括捕获或创建图像,编辑以及最终的渲染和打印。对于电脑的使用模糊了插画师、摄影师、照片编辑、3D 建模工作者和工艺品艺术家之间的区别。复杂的渲染和编辑软件促成了多技能的图像开发人员的出现。艺术家等创作者更愿意使用个人电脑进行创作。因为使用绘图软件比传统方法需要较少的手眼协调,较少的想象能力,同时利用计算机的自动渲染功能可以更高效的(有时更准确的)来创建图像。然而,随着计算机计算能力的提升,绘图软件的风格、特效和编辑方法复杂多样,可能需要比传统绘画更多的学习成本,并且这一成本随着对软件掌握的程度直线上升。此时软件是激发还是压抑创造力就取决于其界面的直观性 5。1.2 绘图软件的发展现状图形从广义上说,是能在人的视觉系统中形成视觉印象的客观对象。计算机图形学由 Ivan Sutherland 于 1962 年提出,并于近些年来飞速发展。计算机图形学是计算机科学的重要分支。目前图形的应用软件很多,例如Photoshop,AutoCAD 等,但就开发图形系统本身来说,仍需构筑其底层平台,以便研究新的算法,扩充新的功能,加快图形处理速度,产生更加逼真的造型效电子科技大学学士学位论文2果。Visual C+作为一种通用的软件开发工具,目前仍然是开发底层软件不可或缺的平台。本次研究正是基于这些因素,利用 MFC 的基础类库开发一个基本绘图环境,力求为图形系统的进一步开发研究提供一个良好的平台 5,6。图形是 Windows 应用程序的重要组成部分,优美的图形界面是所有成功软件的共同特点。VC+是当前最为流行的基于 Windows 的开发工具之一,其功能的强大,精通 VC+是不少程序开发人员的努力方向。在 VC+中,每一项功能的实现都有着严密的逻辑与算法,只有清楚功能背后的原理与方法,才能做到运用自如。VC+的编程方式有两种,一种是直接使用 API 函数,另一种是使用 MFC类库。第一种方式是传统的 Windows 编程方式,保留传统编程中面向过程的特征。第二种方式下 MFC 把 API 函数封装到各种类与对象内,是面向对象与 Windows编程的有机结合,真正体现出了 VC+编程的风格。本文具体分析 MFC 方式下实现绘图功能的几个关键问题,并给出具体实例。1.3 编程语言简介在过去的几十年,计算机技术以令人惊讶的速度发展,编程工作也随之发生翻天覆地的变化,程序员不再需要将穿孔卡片提交给充斥整个房间的大型计算机系统,而这种系统可能只有 100KB 的内存。计算机语言也得到了发展,尽管变化可能没有更大,但也是非常重要的。体积更大、功能更强的计算机引出了更大、更复杂的程序,而这些程序在程序管理和维护方面又带来了新的问题。20 世纪70 年代,C 和 Pascal 语言标志着进入结构化编程时代,同时 C 语言还能生成简洁、快速运行的程序,并提供了处理硬件问题的能力。这些因素使 C 语言成为 20 世纪 80 年代占统治地位的编程语言。同时,20 世纪 80 年代,人们也见证了一种新编程模式的成长:面向对象编程(Object Oriented Programming ,OOP )。20 世纪 70 年代早期,贝尔实验室的 Dennis Ritchie 致力于开发 UNIX 操作系统。完成这项工作需要一种语言,它必须能够生成简洁、快速的程序,并能有效地控制硬件。传统上,程序员使用汇编语言来满足这些需求,汇编语言依赖于计算机的内部机器语言。然而,汇编语言是低级语言,即直接操作硬件,如直接访问 CPU 寄存器和内存单元,因此汇编语言针对于特定的计算机处理器。如果想将汇编程序移植到另一种计算机上,必须使用不同的汇编语言重新编写程序。然而 UNIX 是为在不同的计算机或平台上工作而设计的,这意味着需要一种高级语言。高级语言致力于解决问题,同时不会专用于特定的硬件,编译器则将高级语言翻译成特定计算机的内部语言。这样,就可以通过对于每个平台使用不同的编译器,而实现不同平台上使用同一个高级语言程序了。Ritchie 希望有一种语言能第一章 绪论3将低级语言的效率、硬件访问能力和高级语言的通用性、可移植性融合在一起,于是他在旧语言的基础上开发了 C 语言。“C+主要是为了我的朋友和我不必再使用汇编语言、C 语言或其他现代高级语言来编程而设计的。它的主要功能是可以更方便地编写出好程序,让每个程序员更加快乐”。C+发明者 Bjarne Stroustrup 如此认为。 Stroustrup 比较关心的是让 C+更有用,而不是实施特定的编程原理或风格。在确定 C+语言特性方面,真正的编程需要比纯粹的原理更重要。C+是 C 语言的超集,这意味着任何有效的 C 程序都是有效的 C+程序。它们之间有些细微的差异,但 C+程序仍可以使用已有的 C 软件库。库是编程模块的集合,可以从程序中调用它们。库对很多常见的编程问题提供了可靠的解决方法,因此能节省程序员大量的时间和工作量。这也有助于 C+的广泛传播。名称 C+来自 C 语言中的递增运算符+,该运算符将变量加 1。名称 C+表明,它是 C 的扩充版本。1.4 本文主要研究内容本文主要研究在 Visual Studio 平台下使用 VC+的 MFC 基础类库实现一个画板程序的基本功能,其功能包含有:铅笔工具,可自定义绘制的线形与粗细;直线工具,可自定义绘制的线形与粗细;矩形、圆角矩形与椭圆工具,可自定义所绘图形的填充物。以 XY 轴坐标方式定位光标位置,方便精细操作;支持以 jpg、bmp 等格式保存文件。其中,绘图工具均支持选择黑色、蓝色、绿色、红色、白色或自定义颜色。电子科技大学学士学位论文4第二章 编程基础2.1 编程原理C+融合了 3 种不同的编程方式:以 C 语言代表的过程性语言;C+在 C 语言基础上添加的类代表的面向对象语言;C+模板支持的泛型编程。编程技术人员使用 C+的原因之一就是为了利用其面向对象的特性。而要利用这种特性,就需要对标准 C 语言知识有较深入的了解,因为 C+与 C 语言存在一些共有特征:C 语言提供了基本类型、运算符、控制结构和语法规则。但这并不仅仅是学习更多的关键字和结构。初学者在掌握了 C 之后学习 C+,其学习量与从头学习 C 语言一样大。另外,如果不了解 C 语言,则学习 C+时需要掌握 C 语言知识、面向对象编程知识以及泛型编程知识。2.1.1 C 语言编程原理由于 C+在 C 语言的基础上移植了新的编程理念,因此我们首先来看一看 C所遵循的旧的理念。一般来说,计算机语言要处理两个概念数据和算法。数据是程序使用和处理的信息,而算法是程序使用的方法。C 语言与当前主流的语言一样,在最初面世时也是过程性语言,这意味着它强调的是编程的算法方面。从概念上说,过程化编程首先要确定计算机应采取的操作,然后使用编程语言来实现这些操作。随着程序规模的扩大,早期的程序语言都会遇到组织方面的问题。例如,程序经常使用分支语句,根据某种测试的结果,执行一组或另一组指令。很多旧式程序的执行路径很混乱,几乎不可能通过阅读程序来理解它,修改这种程序简直是一场灾难。为了解决这种问题,计算机科学家开发了一种更有序的编程方法结构化编程。C 语言具有使用这种方法的特性。例如,结构化编程可以将分支限制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025黑龙江省新产业投资集团有限公司招聘1人笔试历年参考题库附带答案详解
- 2025江西吉安遂川县城控人力资源管理有限公司招聘财务人员考试总及入闱考察人员笔试历年参考题库附带答案详解
- 2025下半年四川成都九联投资集团有限公司招聘海科资产公司副总经理等岗位7人笔试历年参考题库附带答案详解
- 《疫苗管理法》知识考试题库(含答案)
- 《药品管理法》培训考核试题(含答案)
- 《物联网系统应用技术》考核试题及答案
- 2025年工业互联网平台量子通信技术在智能工厂品牌建设中的应用预研报告
- 2025年电商平台大数据分析与O2O营销模式融合创新报告
- 2025年水资源管理可持续发展目标(SDGs)实践与水资源保护报告
- 日语教材考试题及答案
- 2025年北京市水务局所属事业单位招聘工作人员(179人)笔试备考试题及一套参考答案详解
- 保姆受伤赔偿协议书
- 2025-2030年动漫影视产业市场深度分析及发展趋势与投资战略研究报告
- 合伙居间合同协议书
- 美食城保洁协议合同协议
- 专题03 地球运动2025年高考复习之近十年地理真题分项汇编(解析卷)
- 养老院食堂食品安全管理制度
- 精神科身体约束与护理
- 2021控制性详细规划技术规程
- 遥感原理与应用 课件 第7、8章 定量遥感、遥感技术的应用
- 干部履历表模板
评论
0/150
提交评论