260 likes | 419 Views
第九章 图形. 9.1 坐标系统和颜色 9.1.1 坐标系统. 坐标原点、坐标度量单位、坐标轴的长度与方向 1. 坐标度量单位 ( 坐标刻度 ) 由容器对象的 ScaleMode 属性决定 如:在窗体上绘制控件及图形,窗体为容器对象。. 2.VB 的缺省坐标系统. 3. 坐标系的定义方法 方法一:设置对象的相关坐标属性. 表 9-2 坐标属性. 【 例9-1 】 在窗体的单击事件中定义窗体 Form1 的坐标系 Private Sub Form_Click() Cls
E N D
9.1 坐标系统和颜色9.1.1 坐标系统 • 坐标原点、坐标度量单位、坐标轴的长度与方向 1.坐标度量单位(坐标刻度) 由容器对象的ScaleMode属性决定 如:在窗体上绘制控件及图形,窗体为容器对象。
3.坐标系的定义方法 方法一:设置对象的相关坐标属性 表9-2 坐标属性
【例9-1】在窗体的单击事件中定义窗体Form1的坐标系【例9-1】在窗体的单击事件中定义窗体Form1的坐标系 Private Sub Form_Click() Cls Form1.ScaleLeft = -200 Form1.ScaleTop = 250 Form1.ScaleWidth = 500 Form1.ScaleHeight = -400 End Sub
方法二:采用Scale方法来设置坐标系 [对象.] Scale[(左上角坐标) – (右下角坐标)] 【例9-2】假定当前对象为窗体Form1,则代码: Me.Scale(-200,250) – (300,-150) • 采用的Scale方法所定义的坐标系与例9-1是等效的
9.1.2 使用VB颜色 1.QBColor函数 QBColor(color) • color参数是介于0~15的整型值 表9-3 color参数的设置值所选择的颜色
1.RGB函数 RGB(R,G,B) • R、G、B分别指明三原色中红色、绿色、蓝色的比例,它们的取值范围为0~255。 表 9 - 4 常 见 标 准 颜 色 的 RGB 值
9.2 图形控件 1.线条控件(Line) 在窗体、图片框和框架中画各种直线段。通过使用Line控件在窗体上可视化地安排直线的位置、长度、宽度、颜色等。 常用属性: X1、X2、Y1和Y2 BorderStyle(边框风格)属性 BorderWidth(线宽)属性
2.形状控件(Shape) Shape控件预定义了6种形状,通过设置Shape属性来实现 所需形状。 表9-5 Shape属性设置值及对应的形状
9.2.3 图形控件与动画 【例9-3】 Timer Shape Line
Timer1的Timer事件代码: Private Sub Timer1_Timer() t = t + 1 Shape3.Left = x0 + Shape1.Tag * Cos(pi * t / 30) - 90 Shape3.Top = y0 - Shape1.Tag * Sin(pi * t / 30) - 90 Line1.X2 = Shape3.Left + 90 Line1.Y2 = Shape3.Top + 90 Line2.Y2 = y0 - Shape1.Tag * Sin(pi * t/30) -Sqr(Line2.Tag^2 _ - (Shape1.Tag * Cos(pi * t / 30))^2) Line2.X1 = Line1.X2 Line2.Y1 = Line1.Y2 Shape4.Top = Line2.Y2 - 200 End Sub
9.2.4 与图形有关的属性 表9-8 对象的图形属性
1.DrawMode属性 决定绘制线条的真实颜色 [对象.] DrawMode [=值] 2.DrawWidth属性和DrawStyle属性 DrawWidth属性用来设置绘图线的宽度 [对象.] DrawWidth [=值] DrawStyle属性用于指定用图形方式创建的线是实线还是虚线 [对象.] DrawStyle [=值] 图9-5 不同设置值的效果
3.FillColor属性和FillStyle属性 FillColor属性为填充色和FillStyle属性为填充样式 [对象.] FillColor [=值] [对象.] FillStyle [=值] 图9-6 FillStyle属性不同设置值的效果
9.3 常用绘图方法 1.画点方法(PSet) 可以在对象的指定位置(x,y),按确定的像素颜色画点 [对象.] Pset [Step] (x,y) [,颜色] 【例9-4】使用PSet方法绘制阿基米德螺线 X=t*cost Y=t*sint For t = 0 To 12 Step 0.01 y = t * Sin(t) x = t * Cos(t) PSet (x, y),vbRed Next t 图9-7 用Pset方法绘制数学曲线
2.画直线、矩形方法 画直线、矩形方法可以在对象上的两点之间画直线或矩形 对象.Line [Step] [x1,y1]-[Step](x2.y2) [,颜色] [,B[F]] 【例9-5】使用Line方法的不同参数画出图形 终点坐标 起始点坐标 ‘画菱形的左上边 Line (ScaleLeft, my)-(mx, ScaleTop) ‘画菱形的右上边 Line -(ScaleWidth + ScaleLeft, my) ‘画菱形的右下边 Line -(mx, ScaleHeight + ScaleTop) ‘画菱形的左下边 Line -(ScaleLeft, my)
3.画圆方法 可以在容器对象上画圆、椭圆或弧 [对象.] Circle [Step] (x,y), 半径 [, 颜色, 开始, 结束, 方位] 说明: (x,y)指定圆、椭圆或弧的中心坐标 “开始”和“结束” 指定弧或扇形的起始点以及终点位置 方位 为垂直半径与水平半径之比,不能为负数 【例9-6】 Const pi = 3.1415926 Circle (1500,1250), 1000, vbBlue, pi/2, 2*pi Circle Step(500,-500), 500, vbRed Circle Step(0,0),500, , , , 5/25
4.清除图形方法 可以清除窗体或PictureBox等容器对象中由图形和打印语句在运行时所生成的图形和文本 [对象.] Cls 5.绘图语句与Paint事件 窗体和Picture控件都有Paint事件,通过使用Paint事件过程,可以保证必要的图形都得以重现。 Paint事件 其它事件
9.4 显示图片 图片可以在三个对象中出现 Form、PicutreBox、Image 1.在Form中显示图片 • 使用窗体的Picture属性 • 要在运行时显示或替换图片,可利用函数LoadPicture来设置Picture属性 LoadPicture([文件名]) 注明: • “文件名”是一个字符串表达式,包括驱动器、文件夹和文件的名称,也可以使用App.Path获得当前路径
2.在Image中显示图片 • Picture属性 • LoadPicture函数 • Strech(伸展属性) 【例9-7】现有五个描述手伸握过程的图形(h1.jpg ~ h5.jpg)和一幅背景图(car.gif),试利用图像框(Image)装载显示图形较快的特点,结合其Move方法编程实现让手在背景图上伸握移动的动画显示。
3.在PictureBox中显示图片 • Picture • AutoSize • Image 【例9-8】利用图片框(PictureBox)进行图形复制和文本打印
水平滚动条(HScrollBar) 4.使用滚动条控件(ScrollBar) • 滚动条属性(Value\LargeChange\SmallChange) • 滚动条事件(Change\Scroll) • 滚动条应用 【例9-9】 垂直滚动条(VScrollBar) 利用滚动条控制设置R(红)、G(绿)、 B(蓝)三原色彩的调合比例并返回调合色彩的RGB值
习 题 9 9-1 利用(Line、Shape)图形控件和标签控件编制小时钟程序,并利用Timer控件来控制指针的转动,如图9-16所示。
9-2 编制程序:利用Circle和Line 方法及窗体的Fillcolor等属性,在窗体中画一个发光的红太阳,如图9-17所示。