您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 第十二章图形图象与多媒体
12.1几何图形控件Shape几何图形控件位于工具栏上的Additional页中,用于窗体上绘制一些常见的几何图形:矩形、院、椭圆、圆角矩形。1、shape属性设置需要绘制的几何图形种类,属性取值:2、Brush属性该属性设置图形填充的模式和颜色。Brush属性栏中有“+”号,点击后出现子属性:color,style.(1)color子属性(2)style子属性style子属性的取值确定了图形的填充方式,其属性取值如图:3、pen属性pen像brush一样包含子属性,有:color,mode,style和width。(1)color子属性的取值同前:(2)style子属性取值:(3)mode子属性确定了pen是如何画线的。(4)width子属性表示线宽默认值为1。当width属性取值大于1时,style子属性若取值为破折号或圆点则显示为实线。12.2图象控件Image图象控件image是一种容器控件,它在应用程序窗体上提供一个矩形区域,用于显示各种位图、图标、图文元件。(1)双击控件栏additional页上的image控件,在form1中添加image控件。选定image控件,单击对象编辑器中的pcture属性行()按钮,打开图片对话框,单击load按钮,选择文件。这时,只显示文件的一角,如要显示全图,有两种方法:一,在对象编辑器中修改autosize属性值为true,则image控件可自动调整大小以适应调入的图形;二,在对象编辑器中,修改strech属性值为true,则image控件大小不变,图形则自动缩小或放大以适应image控件的大小。(2)通过调用过程procedureLoadFromFile(constfilename:string);virtical;在程序运行期间调入图形。【例12-1】在窗体中显示图形在窗体上放一个Image1控件,一个,一个图片对话框OpenPictureDialog1控件,Button1控件的Click事件代码:procedureTForm1.Button1Click(Sender:TObject);varsFile:string;beginifOpenPictureDialog1.ExecutethenbeginsFile:=OpenPictureDialog1.FileName;Image1.Picture.LoadFromFile(sFile);end;end;12.3画布canvas对象画布对象,用于应用程序的图形输入。在Delphi中绘图时,是将图形画在窗体、图象控件image控件、画框中的画布canvas上。画布也有自己的属性,它本身也是一个控件,但一般不能单独使用。画布属性是类TCanvas的对象,类TCanvas中最重要的属性有4个:画笔、画刷、字体控件和图形像素组。本节主要讲授:像素操作画笔操作画刷操作12.3.1像素操作像素是组成图形的最基本的单位。画布上的每一个点都有一个对应的像素,用来代表此点的颜色。利用画布的Pixels属性,可绘制数学函数曲线。【例12-2】:绘制圆的渐开线,如图:(1)在窗体中添加按钮button1,其caption属性值改为“显示”。(2)按钮button1的click事件代码如下:procedureTForm1.Button1Click(Sender:TObject);varxt,yt,t:integer;x,y:double;beginx:=Form1.ClientWidth/2;y:=Form1.ClientHeight/2;fort:=0to15000dobeginxt:=Round(Cos(t/100)+t*Sin(t/100)/100+x);yt:=Round(-Sin(t/100)-t*Cos(t/100)/100+y);Canvas.Pixels[xt,yt]:=clBlue;end;end;12.3.2画笔操作1画线的方法2画矩形的方法3画圆或椭圆的方法4画弧形曲线的方法5画圆角矩形的方法1画线的方法(1)MoveTo方法,作用是将画笔移到指定位置,使用方法为:MoveTo(x,y:integer).(2)LineTo方法,作用是画一条到指定位置的直线段,线段起始位置由画布对象的penpos属性值即画笔的当前位置确定。使用方法为:LineTo(x,y:integer).(3)画折线的方法,使用方法为:PolyLine(points:arrayofTPoint).其中points为类tpoints的一个数组Points定义为:TPoint=Recordx:longinty:longintend;points:arrayofTPoint;2画矩形的方法Rectangle方法用于画矩形。使用方法为:Rectangle(x1,y1,x2,y2:integer);其中(x1,y1)为矩形左上角的坐标,(x2,y2)为右下角的坐标。3画圆或椭圆的方法Ellipse方法用于画圆或椭圆。使用方法为:Ellipse(x1,y1,x2,y2:integer);其中,(x1,y1)为圆或椭圆外切矩形左上角的坐标,(x2,y2)为右下角的坐标。4画弧形曲线的方法Arc方法用于画弧形曲线。使用方法为:Arc(x1,y1,x2,y2,x3,y3,x4,y4:integer);其中,(x1,y1)(x2,y2)为圆或椭圆外切矩形在左上角的坐标和右下角的坐标。使用Arc方法确定的弧形曲线就是该椭圆曲线的一部分,并且(x3,y3)(x4,y4)分别确定了弧形曲线的起始点,这样就可以由起始点,在椭圆曲线上沿逆时针方向得到该弧形曲线。5画圆角矩形的方法Roundrect(x1,y1,x2,y2,x3,y3:integer);其中,(x1,y1)(x2,y2)确定了直角矩形的左上角,右下角的坐标。(x3,y3)为圆角的长短半径。12.3.3画刷操作画布的画刷brush属性决定了图形内部区域的填充方式。1画刷的属性(1)颜色属性(color)颜色属性设置画刷的填充区域的颜色,默认为白色。设置方式为:Canvas.Brush.Color:=属性值颜色属性取值见12.1(2)风格属性(style)风格属性用于设置画刷的填充区域样式,其取值见12.1。(3)位图属性位图属性是一个存放图形数据的对象,可在程序运行阶段动态地创建或删除,常用命令有:bitmap.createbitmap.loadfromfile(‘文件路径’)bitmap.free2作图区域作图区域Rect是TRect属性的对象,同时也是一个函数。Rect对象的作用就是定义一个矩形区域对象。Rect对象用两个TPoint类型或用4个整形变量指明区域范围。3Canvas绘制图像的3个方法:(1)Draw(x,y:integer,Graphi:TGraphi)其中,x,y为绘图区域右上角的坐标.Graphi参数指明需要绘制的图像、图标或位图文件.(2)FillRect(ConstRect:TRect);其中,Rect为绘图区域,在调用该过程之前,先由Brush.BitMap指明需要绘制的图像、图标或位图文件.(3)StretchDraw(Rect:TRect;Graphi:TGraphi)其中,Rect为绘图区域.12.4PaintBox画板控件PaintBox在窗体中提供一个可以用来绘制几何图形的矩形区域,可以使用绘图语句,在这个区域内绘制各种图形。PaintBox控件在System页中,双击则可在form1中添加。【例12-3】:利用PaintBox图片框输出文本与图形,如图:(1)建立应用程序用户界面。选择“file”菜单下的“newapplication”选项,进入窗体设计器,增加一个PaintBox控件PaintBox1,一个下拉式菜单项。(2)编写程序代码:利用OnPaint事件用于在窗体上重新画图,画坐标系procedureTForm1.FormPaint(Sender:TObject);varoldx,oldy,xt,yt:integer;st:Double;beginwithPaintBox1dobeginTop:=0;Left:=0;Width:=Form1.ClientWidth;Height:=Form1.ClientHeight;Canvas.Pen.Color:=clBlack;end;oldx:=Round(Form1.ClientWidth/2);oldy:=Round(Form1.ClientHeight/2);PaintBox1.Canvas.Moveto(oldx,0);PaintBox1.Canvas.LineTo(oldx,PaintBox1.Height);PaintBox1.Canvas.MoveTo(0,oldy);PaintBox1.Canvas.LineTo(PaintBox1.Width,oldy);forxt:=-9to9doifxt0thenbeginst:=xt*10*pi;PaintBox1.Canvas.MoveTo(oldx+Round(st),oldy-1);PaintBox1.Canvas.LineTo(oldx+Round(st),oldy);PaintBox1.Canvas.TextOut(oldx+Round(st)-10,oldy+1,IntToStr(xt)+'/2pi');end;foryt:=-9to9doifyt0thenbeginst:=yt*20;PaintBox1.Canvas.MoveTo(oldx+1,oldy-Round(st));PaintBox1.Canvas.LineTo(oldx,oldy-Round(st));PaintBox1.Canvas.TextOut(oldx-20,oldy-Round(st),IntToStr(yt));end;end;procedureTForm1.Sin1Click(Sender:TObject);varoldx,oldy,t:integer;xt,yt:Double;beginoldx:=Round(Form1.ClientWidth/2);oldy:=Round(Form1.ClientHeight/2);fort:=-oldxtooldxdobeginxt:=t/20;yt:=Sin(xt);PaintBox1.Canvas.Pixels[t+oldx,oldy-Round(yt*20)]:=clBlue;end;end;procedureTForm1.Sin1Click(Sender:TObject);varoldx,oldy,t:integer;xt,yt:Double;beginoldx:=Round(Form1.ClientWidth/2);oldy:=Round(Form1.ClientHeight/2);fort:=-oldxtooldxdobeginxt:=t/20;yt:=Cos(xt);PaintBox1.Canvas.Pixels[t+oldx,oldy-Round(yt*20)]:=clBlue;end;end;procedureTForm1.Cls1Click(Sender:TObject);beginPaintBox1.Refresh;end;procedureTForm1.Exit1Click(Sender:TObject);beginClose;end;12.5多媒体程序设计本节主要讲授:卡通控件媒体播放器12.5.1卡通控件1卡通控件的属性卡通控件在Win32页中,其属性为:2卡通控件的方法(1)Create方法Create函数用于在运行中产生一个卡通控件,其调用方法为:Create(AOwner:TComponent);override;(2)Play方法Play方法用于播放avi剪辑文件,其调用方法为:procedurePlay(fromframe,toframe:word;count:integer);
本文标题:第十二章图形图象与多媒体
链接地址:https://www.777doc.com/doc-2163369 .html