第7章 图形与图像.doc

第7章 图形与图像.doc

ID:28814113

大小:1.41 MB

页数:45页

时间:2018-12-14

第7章 图形与图像.doc_第1页
第7章 图形与图像.doc_第2页
第7章 图形与图像.doc_第3页
第7章 图形与图像.doc_第4页
第7章 图形与图像.doc_第5页
资源描述:

《第7章 图形与图像.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、第7章图形与图像由于Windows是一个图形界面的操作系统,所以传统的Windows程序设计方法在处理有关图形设计时,多半是遵循着Windows诞生以来的方法,通过所谓的GDI(GraphicsDeviceInterface)来进行图形的绘制。GDI式的绘图法对于早期曾经在Dos下自行编写绘图单元的程序设计师来说,虽然减少了许多类似于“重新发明轮子”的麻烦,但是相对地也带来另外一种程序设计的思维模式转变,相信曾经经历过这段过程的人都还心有余悸。对于完全没有任何程序设计经验的初学者来说,庞大复杂的GDI绘图系统更是一个难以跨越的学习障碍

2、。但是,在Windows中不是没有一个简易可行的绘图方法。本章要为你介绍的Delphi绘图系统,就提供了一个高度抽象化的绘图单元,让你可以用非常直观的方式来实现Windows下的绘图功能。在Delphi中,专门定义了一组对象和部件用以绘制图形,并能完成一些简单的图像功能。利用这些对象、部件的方法,可以方便地绘制各种常用图形;通过设置它们的属性,能得到不同风格的图形。另外,通过对鼠标事件的定义,可以方便的设计图形绘制程序。7.1常用图形对象及简单应用绘制图形一般要涉及到在什么地方绘图,使用何种颜色画和使用何种填充图案等问题。Delphi

3、为用户提供了一个专供绘图的画布Canvas,每一个具有Canvas属性的对象,都可以作为绘制图形的环境。例如,对于TForm对象(通常所说的窗口),它也有Canvas属性,换句话说,可以直接在窗体绘制各种各样的图形。7.1.1画布对象(TCanvasObject)TCanvas对象是一个用于绘图的表面,在这个区域上,程序可实现各种绘图功能,很多组件(如TIMage,TMemo、TPaintBox等)的Canvas属性就是TCanvas对象。为了在一个组件上创建图形,TCanvas类中的成员调用WindowsGDI函数。Canvas属性

4、是对WindowsGDI的一个综合的、面向对象的封装。Canvas总是准备着被使用,对它自己来说是一个对象。下面我们通过一个简单的例子来说明如何利用Canvas属性来绘图。启动Delphi6,新建一个应用程序。为窗体Form1的OnPaint事件添加如下代码:procedureTForm1.FormPaint(Sender:TObject);beginForm1.Canvas.TextOut(10,10,'CanvasObject');Form1.Canvas.RoundRect(60,60,200,140,10,10);end;编译

5、并运行该程序,结果如图7-1所示。在上面的程序中,我们应用了Canvas的TextOut和Ellipse方法,分别是输出一行文字和画一个圆角矩形,输出文本的字体、圆角矩形的线条和填充色都是采用的默认值,通过改变Canvas的属性可以使输出的结果更加美观。图7-1Canvas应用实例下面我们再来看一个小程序,打开一个新工程,为窗体Form1的OnPaint事件添加如下代码:procedureTForm1.FormPaint(Sender:TObject);varA,x1,y1,x2,y2:Double;D:Integer;i:Integ

6、er;E,M_PI:Double;beginD:=100;M_PI:=3.1415926535897932;fori:=0to720dobeginA:=i*M_PI/360;E:=D*(1+sin(4*A));x1:=320+E*cos(A);x2:=320+E*cos(A+M_PI/5);y1:=240+E*sin(A);y2:=240+E*sin(A+M_PI/5);Canvas.MoveTo(Round(x1),Round(y1));Canvas.LineTo(Round(x2),Round(y2));end;end;运行该程序

7、,结果如图7-2所示。图7-2Canvas应用实例怎么样,酷吧。我们只是利用了Delphi的Canvas绘图的基本观念和几个简单的基本函数就做出了这么美丽的电脑绘图。TCanvas对象很多方法,可完成常用的绘图功能,现将方法及功能简介如表7-1:表7-1TCanvas对象的方法方法名称函数形式函数功能ArcArc(X1,Y1,X2,Y2,X3,Y3,X4,Y4:Integer)在椭圆上画一段弧,椭圆由(X1,Y1),(X2,Y2)两点所确定的椭圆所决定。弧的起点是椭圆圆周和椭圆中心与(X3,Y3)连线的交点。弧矩形终点是椭圆圆周和椭圆

8、中心与(X4,Y4)连线的交点,以逆时针方向画弧ChordChord(X1,Y1,X2,Y2,X3,Y3,X4,Y4:Integer)连接椭圆上的两点,椭圆由(X1,Y1),(X2,Y3)两点所确定的矩形决定,(X3,Y

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。