您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 第10章处理图形-多媒体课件
大学计算机基础教程TaiYuanUniversityofTechnology第10章处理图形VisualBasic程序设计教程VisualBasic程序设计教程2本章主要介绍绘图属性绘图方法图片框影像框VisualBasic程序设计教程3图形一般指图绘形象,描画出物体的轮廓、形状等。由图元组成,图元可以是点、线、圆、字符、填充区等。每个图元有它的数据定义和外貌特征。如线段端点、粗细等。VB提供了一些控件和方法,绘制图元,最终构成图形容器是绘制图形或控件的场所容器中的对象只能在容器内变动。窗体、框架、图片框是容器移动容器时,内部对象与容器的相对位置保持不变。VisualBasic程序设计教程4VB容器的图层从前到后为:前层——非绘图控件所在层,如命令按钮、复选框等;中间层——绘图控件和标签所在层;底层——绘图方法显示结果的地方。图层显示特性依靠:AutoRedraw和ClipControls属性的设置及绘图方法是否在Paint事件过程内。图像一般是指绘制、摄制或印制的形象。可将它们装载到图片框、影像框可窗体上VisualBasic程序设计教程5【例10-1】设计一个模拟单摆·控件:图片框控件Picture1:作单摆容器直线控件Line1:作绳索形状控件Shape1:作球(设计界面中为矩形)定时器控件Timer1:控制摆动。VisualBasic程序设计教程6·2个模块级变量A和D,表示摆动角度和方向。·2个事件过程:Form_Load,初始化界面和控件属性Timer1_Timer,控制单摆的运动。VisualBasic程序设计教程7OptionExplicitDimAAsInteger,DAsInteger'模块级变量,A表示角度,D表示方向ConstPI=3.1415926PrivateSubForm_Load()Form1.Width=1.3*Form1.Height'设置窗体的宽度和高度比例Picture1.Width=1.5*Picture1.Height'设置图片框的宽度和高度比例Picture1.Scale(-150,-5)-(150,195)'更改坐标系统Shape1.FillStyle=0'使形状控件的填充模式为实心Shape1.FillColor=vbRed'使形状控件填充红色Shape1.BorderColor=vbRed'使形状控件的边界颜色为红色Shape1.Width=15'按坐标系,更改形状控件大小Shape1.Shape=3'使形状控件的形状为圆形Line1.BorderColor=vbRed'使绳索颜色为红色Line1.X1=0:Line1.Y1=0'使绳索上端在原点(0,0)上Picture1.AutoRedraw=True'使图片框的重绘属性为TruePicture1.Line(-10,0)-(10,0)'顶端画一条固定绳索的横线Timer1.Interval=100A=-20:D=-1'设置初始角度和方向EndSubVisualBasic程序设计教程8PrivateSubTimer1_Timer()DimXAsSingle,YAsSingleIfD=-1ThenA=A+2ElseA=A-2X=170*Sin(A*PI/180)'确定圆心和直线下端的位置Y=170*Cos(A*PI/180)Line1.X2=X:Line1.Y2=Y'更改直线下端位置Shape1.Left=X-Shape1.Width/2'使圆心位置在直线的下端Shape1.Top=Y-Shape1.Height/2IfD=-1AndA=20OrD=1AndA=-20ThenD=-D'±20°改方向EndSub·Scale方法使图片框左上角和右下角坐标分别为(-150,-5)和(150,195)。·而170表示着绳索的长度,可以取其它值,但应使整个单摆可见。VisualBasic程序设计教程9·坐标系是用于确定数与基本几何对象之间对应关系的参考系,是形和数结合的基础。·VB坐标系是确定对象和图形位置的参考系。·VB中每一个容器采用(x,y)的二维坐标系统·每个对象、图形操作,都要使用坐标系。·VB坐标系统使用有以下规则:移动或调整控件大小时,使用容器的坐标系统。绘图方法和Print方法,使用容器的坐标系统。VisualBasic程序设计教程1010.3.1VB默认坐标系·VB坐标系每个点用(x,y)表示x是水平方向沿x轴的位置,默认最左端是0y是垂直方向沿y轴的位置,默认最上端是0·坐标单位又称为坐标刻度,默认缇(twips)。还可以使用磅、像素和毫米等。·屏幕的左上角的坐标总是(0,0)VisualBasic程序设计教程11·其它容器在缺省状态下,左上角是(0,0)。窗体(0,0)点指窗体标题栏下边沿的左上角。·使用对象的刻度属性和Scale方法,可重新设置容器的坐标系统。VisualBasic程序设计教程1210.3.2Scale方法·使用Scale方法可以创建自定义刻度。·Scale方法的使用格式为:[容器名.]Scale[(x1,y1)-(x2,y2)]1.容器名指窗体名或图片框控件名。缺省指当前窗体2.(x1,y1)和(x2,y2)为新坐标系统左上角和右下角坐标3.省略(x1,y1)-(x2,y2),恢复缺省刻度。VisualBasic程序设计教程13·例10-1中Picture1.Scale(-150,-5)-(150,195)更改图片框坐标系如上图。这样求运动点(x,y)的位置比较方便设绳索长为170,则当绳索与y轴的夹角为a时,则x=170sina,y=170cosa。VisualBasic程序设计教程1410.3.3坐标属性·使用坐标属性可以更改容器的坐标刻度,也可以自定义坐标系。ScaleMode:设置坐标刻度,缺省值为1(缇)ScaleLeft:表示或设置对象左边界水平坐标ScaleTop:表示或设置对象上边界垂直坐标ScaleWidth:表示或设置对象内水平度量单位数ScaleHeight:表示或设置对象内垂直度量单位数CurrentX:当前输出的水平坐标。程序中使用。CurrentY:当前输出的垂直坐标。程序中使用。VisualBasic程序设计教程15·属性说明:ScaleWidth、ScaleHeight不同于Width、HeightScaleMode属性可以取值0~7,表示刻度分别为自定义、缇、磅、像素、字符、英寸、毫米和厘米。更改ScaleWidth、ScaleHeight、ScaleLeft、ScaleTop之一时,VB自动将ScaleMode的值设为0。如Scale(-150,-5)-(150,195),也可以表示成:ScaleWidth=300:ScalHeight=200:ScaleLeft=-150:ScaleTop=-5若要改坐标轴方向,可将ScaleWidth或ScaleHeight设置成负值VisualBasic程序设计教程16ScaleMode属性取值为1~7时的刻度,称为标准刻度在设置了ScaleMode属性的值后,VB会重定义ScaleWidth和ScaleHeight,使它们与新刻度保持一致。左上角坐标总是:(ScaleLeft,ScaleTop)右下角坐标总是:(ScaleLeft+ScaleWidth,ScaleTop+ScaleHeight)。VisualBasic程序设计教程1710.4.1画点—PSet方法·绘图方法可画点、画线、画矩形、画椭圆等。·格式:[对象名.]PSet(x,y)[,颜色]1.(x,y)为所画点的坐标位置2.颜色指点的颜色。缺省时由容器的ForeColor属性决定。例如:PSet(1000,1000),RGB(255,0,0)在(1000,1000)处画红点,大小由容器的DrawWidth属性决定。3.擦除一个点,可采用以背景色重画点。4.Cls方法可擦除绘图方法及Print方法的输出内容。VisualBasic程序设计教程18【例10-2】绘制一条y=x2的抛物线。PrivateSubForm_Click()DimxAsSingleScale(-10,105)-(10,-2)Forx=-9To9Step0.01PSet(x,x*x)NextxEndSubVisualBasic程序设计教程1910.4.2画直线和矩形——Line的方法·使用Line方法可以画出直线或矩形。1.画线格式:[对象名.]Line[(x1,y1)]-(x2,y2)[,颜色](x1,y1)和(x2,y2)分别为起点和终点坐标如:Line(100,150)-(1400,1300),vbRed·缺省起点(x1,y1),表示将当前输出位置作为起点。VisualBasic程序设计教程20坐标点的另一种表示形式为:Step(x,y)是相对位置的表示法,表示当前输出位置水平方向加上x,垂直方向加上y后得到的坐标点。对象的当前位置由CurrentX和CurrentY决定Line(100,200)-(150,250)等价:Line(100,200)-Step(50,50)VB画直线时,包括了起点,未包括终点。画终点可用:PSetStep(0,0)[,color]连续使用缺省起点的Line方法,可以绘制多点折线。VisualBasic程序设计教程21【例10-3】在窗体上中间画出一个等腰三角形。可根据窗体ScaleWidth和ScaleHeight属性确定三点位置由于一条线的终点等价于另一条线的起点,因此除了第一条线以外,其它两条线均可用缺省起点的Line方法。VisualBasic程序设计教程22PrivateSubCommand1_Click()Dimx1AsInteger,x2AsInteger,x3AsIntegerDimy1AsInteger,y2AsInteger,y3AsIntegerx1=ScaleWidth/2:y1=ScaleHeight/5x2=ScaleWidth/5:y2=ScaleHeight/5*4x3=ScaleWidth/5*4:y3=ScaleHeight/5*4Line(x1,y1)-(x2,y2)Line-(x3,y3)Line-(x1,y1)EndSubVisualBasic程序设计教程232.画矩形采用格式:[对象名.]Line[(x1,y1)]-(x2,y2),[颜色],B[F](x1,y1)和(x2,y2)为矩形的两个对角顶点坐标缺省(x1,y1),表示当前输出位置作(x2,y2)的对角顶点参数B表示绘制矩形参数F表示矩形填充,即为实心的矩形如:Line(500,200)-Step(200,200),vbRed,B如:Line(500,200)-Step(200,200),vbRed,BF若颜色缺省,逗号也不能省VisualBasic程序设计教程24【例10-4】编制简易黑板。功能是:用鼠标左键在窗体上拖动时,画出线条;用鼠标右键在窗体上拖动时,擦去线条。击“清除”擦去所有痕迹。·事件:窗体MouseDown:画出按下鼠标的第一点窗体MouseMove:画出线条或删除线条用背景色,画小矩形擦“清除”的Click:擦去所有痕迹VisualBasic程序设计教程25PrivateSubCommand1_Click()'擦“黑板”ClsEndSubPrivateSubForm_Load()'初始化Form1.Caption=简易黑板Form1.BackColor=RGB(0,0,0)Form1.ForeColor=RGB(255,255,255)Command1.Caption=擦除EndSubVisualBasic程序设计教程26PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1Then'Button=1表示按下左键,画第一点Form1.PSet(X,Y)EndIfEndSubPrivateSubFor
本文标题:第10章处理图形-多媒体课件
链接地址:https://www.777doc.com/doc-1482761 .html