C++ 百叶窗效果程序设计.doc

上传人:ng****60 文档编号:3251395 上传时间:2019-05-27 格式:DOC 页数:10 大小:89.50KB
下载 相关 举报
C++ 百叶窗效果程序设计.doc_第1页
第1页 / 共10页
C++ 百叶窗效果程序设计.doc_第2页
第2页 / 共10页
C++ 百叶窗效果程序设计.doc_第3页
第3页 / 共10页
C++ 百叶窗效果程序设计.doc_第4页
第4页 / 共10页
C++ 百叶窗效果程序设计.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、1课程设计任务书学院 信息科学与工程学院 专业 电子信息工程学生姓名 学号设计题目 百叶窗效果程序设计内容及要求:以面向对象编程技术设计 windows 应用程序,主要功能:图片出现百叶窗效果。 进度安排:第一阶段:16 学时。设计阶段。学生根据所选题目,查阅有关资料,综合所学的理论知识完成整体设计及具体设计。第二阶段:12 学时。调试测试阶段。上机调试测试,要求学生务必认真,思想高度集中,调试成功后,整理、编写设计资料及实验报告。第三阶段:4 学时。验收答辩。指导教师(签字):年 月 日分院院长(签字):年 月 日2摘要对于百叶窗效果,将放在暂存图形中的数据分成若干组,然后依次从第一组到最后

2、一组搬移,第一次每组各搬移第一条扫描线到可视图的位置;第二次搬移第二条扫描线,接着第三条、第四条扫描线。调用 CopyRect Tcanvas 对象与拷贝位图有关的是 CopyMode 属性和 CopyRect 方法,其中CopyMode 定义拷贝的模式,而 Copy Rect 执行位图拷贝的操作。当 CopyMode定义为缺省值 cmSrcCopy 时,CopyRect 将源画布上的一部分位图拷贝到目标画布上的一个矩形区域内。在 delphi 平台上实现百叶窗效果3目录一设计目的1二关键技术1三程序流程3四主要源代码3五. 运行结果及结论.6六参考文献74正文:一设计目的通 过 本 课 程

3、教 学 , 培 养 学 生 具 备 利 用 可 视 化 开 发 工 具 开 发 信 息 系 统能 力 , 培 养 学 生 的 实 际 动 手 能 力 以 及 自 学 其 它 系 统 开 发 工 具 的 能 力 。 通过 本 课 程 教 学 , 着 重 培 养 学 生 具 备 理 论 联 系 实 际 , 以 所 学 的 知 识 , 用 于解 决 实 际 问 题 的 良 好 素 质 。 这 次 实 验 主 要 通 过 对 可 视 化 开 发 工 具Delphi7 的 使 用 , 结 合 Microsoft Access 强 大 的 数 据 库 功 能 , 建 立 一个 人 机 交 互 友 好 系

4、统 , 通 过 对 已 学 知 知 识 的 掌 握 , 在 理 论 基 础 上 锻 炼 自己 的 实 际 动 手 能 力 , 培 养 学 生 发 散 思 维 和 系 统 思 维 。二关键技术Delphi 中与绘图和位图操作有关的对象是画布 Tcanvas。Tcanvas 对象功能强大,封装了 WindowsAPI 的 GDI,用户可以很方便地在画布上绘制直线、矩形、椭圆、多边形等基本图形,还可以显示、拷贝位图,却不必关心设备上下文等 GDI 概念,极大地方便了用户。Tcanvas 对象本身并不是一个构件,不单独使用,它总是作为其它对象的属性来使用的。Delphi 有四个对象具有画布属性,它们是

5、 TForm、TImage、TPaintbox 和 Tbitmap,其中前三者是可视化构件。至于 Tcanvas 的详细情况,可以参考 Delphi 的联机帮助。实现简单的位图显示特技,实际上就是以不同的方式逐渐将源位图拷贝到Tcanvas 类型的对象上,如从位图的中央开始拷贝一个矩形区域到屏幕中央,矩形区域不断扩大直到拷贝整个位图,其视觉效果就是位图从屏幕中央向四周扩散。不同的拷贝方式就形成了多种特技形式,如扩散、拉动和百叶窗等。对于每种特技形式灵活运用,又可演变出多种花样,如扩散可以演变为从上向下、5从左向右、从中间向四周和相反方向的扩散,以及从一角向对角方向扩散的特技花样。实现上述位图显

6、示特技的原理很简单,关键是怎样实现位图的拷贝。在Delphi 中有两种拷贝位图的方法,相应地就有两种实现位图显示特技的方法,一种是用 Tcanvas 对象的方法 CopyRect,另一种是调用 WindowsAPI 的BitBlt 函数。1、调用 CopyRect Tcanvas 对象与拷贝位图有关的是 CopyMode 属性和 CopyRect 方法,其中CopyMode 定义拷贝的模式,而 Copy Rect 执行位图拷贝的操作。当 CopyMode定义为缺省值 cmSrcCopy 时,CopyRect 将源画布上的一部分位图拷贝到目标画布上的一个矩形区域内。2、调用 BitBlt 函数这

7、里涉及到了在 Delphi 中如何调用 WindowsAPI。每当生成一个新的项目时,Delphi 自动地把 WinType 和 WinProcs 单元名添加到所生成单元文件中的uses 子句中,这两个单元包含了 Delphi 调用 WindowsAPI 所必须的类型定义和例程声明。这样,只需使用正确的参数就可以直接调用 WindowsAPI,而不需要再作其它任何声明。BitBlt 及类似的 StretchBlt 函数是 Windows 功能强大的图形处理函数,它的功能与 TCanvas 的 CopyRect 函数一样,不仅能够将位图或位图的一部分从一处拷贝到另一处,它还可以根据 256 个不

8、同的光栅操作码将三幅位图结合起来,从而呈现不同的视觉效果。在 WindowsAPI 函数中,所有的 blt 函数的鼻祖都是 BitBlt 函数。6三、程序流程:四主要源代码:unit Unit1;interfaceusesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ExtCtrls, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;Image1: TImage;Button3: TButton;procedure Button1Click(

9、Sender: TObject);procedure Button3Click(Sender: TObject);private Private declarations public Public declarations 7end;varForm1: TForm1;implementation$R *.DFMprocedure TForm1.Button1Click(Sender: TObject);varnewbmp:TBitmap;i,j,delay,bmpheight,bmpwidth:integer;xgroup,xcount:integer;beginnewbmp:= TBitm

10、ap.Create;newbmp.Width:=image1.Width;newbmp.Height:=image1.Height;bmpheight:=image1.Height;bmpwidth:=image1.Width;xgroup:=16;xcount:=bmpheight div xgroup;for i:=0 to xcount dofor j:=0 to xgroup dobeginnewbmp.Canvas.CopyRect(Rect(0,xcount*j+i-1,bmpwidth,xcount*j+i),image1.Canvas,Rect(0,xcount*j+i-1,b

11、mpwidth,xcount*j+i);form1.Canvas.Draw(20,20,newbmp);for delay:=0 to 65000 do8beginend;for delay:=0 to 65000 dobeginend; end;newbmp.Free;end;procedure TForm1.Button3Click(Sender: TObject);beginclose;end;end.五. 运行结果及结论:运行结果:9结论:本次课程设计,通过使用可视化开发工具 Delphi 实现图片的百叶窗效果,我们的实际动手能力以及自学其它系统开发工具的能力有所提高,同时发现平时学习

12、中的许多不足之处。例如,在开发系统过程中,对数据库重要组件包括数据集组件和数据显示组件等的相关属性及方法不够熟悉,还不能在需要时纯熟、灵活地运用,在技术上无法实现梦寐以求的效果,留下许多缺憾。更好的保证了系统的稳定性,提高了系统的容错能力。10六、参考文献 1软件工程 Java 语言实现,Stepen R. Schach 著,袁兆山等译,机械工业出版社,1999 年 9 月,北京2现代软件工程管理技术篇,周之英编著,科学出版社,1999 年 9月,北京3面向对象技术概述,山海网络,2002-3-2544.面向对象软件工程方法学实践,山海网络,2002-3-2555.转引软件工程专家网6.面向对象的软件开发,leasun 翻译,山海网络,2002-3-256,7面向对象语言基础一,中国程序员开发网络, 8面向对象语言基础二,中国程序员开发网络9. 面向对象程序设计,中国程序员开发网络,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。