实验1 考察Visual Basic的图形能力实验目的:通过本实验了解Visual Basic的基本图形能力,掌握建立图形坐标系的方法;掌握图形控件和图形方法;能绘制简单几何图形。
实验内容:1、在窗体上放置一个图形框,两个命令按钮,设置标题为“画图”和“返回”,如下图所示。
单击“画图”按钮,在图形框内绘制参数方程的图形;当单击“返回”按钮,程序结束。
参考程序如下:Const pi = 3.14159Dim a, e, fDim x1, y1, x2, y2, d As Integerd = 120Picture1.ClsPicture1.Scale (0, 0)-(640, 480)For a = 0 To 4 * pi Step pi / 60e = d * (1 + 1 / 2 * Cos(2.5 *a))x1 = 320 + e * Cos(a)x2 = 320 + e * Cos(a + pi / 6)y1 = 240 - e * Sin(a)y2 = 240 - e * Sin(a + pi / 8)Picture1.Line (x1, y1)-(x2, y2), QBColor(12)Next a2、编一个循环程序,用line控件对象在屏幕上随机产生20条长度、颜色、宽度不同的直线,如下图所示(提示:在窗体上要先设置一个line控件对象,使其Index值为0)。
参考程序如下:Private Sub Form_Load()For i = 1 To 20Load Line1(i) ‘添加控件Line1(i).BorderWidth = Rnd *10 + 1Line1(i).BorderColor = QBColor(Rnd* 15)Line1(i).X1 = Form1.Width *RndLine1(i).X2 = Form1.Width * RndLine1(i).Y1 = Form1.Height * RndLine1(i).Y2 = Form1.Height * RndLine1(i).Visible = TrueNext iEnd Sub3、用Circle方法绘制如下图所示图形。
参考程序如下:Private Sub Command1_Click()For i = 1 To 20x = i * 100 + Width / 4y = Form1.Height / 2r = i * 50Circle (x, y), rNext iEnd Sub4、设计一个程序以动画方式显示如下图所示图形。
参考程序如下:Private Sub Form_Click()Scale (0, 0)-(20, 20)For i = 0 To 7 Step 0.1x = 10 + i * Cos(i)y = 8 + i * Sin(i)Line (10, 8)-(x, y)Next iEnd Sub5、在窗体上用Pset画10个随机点,用Line画10条随机线,用Circle画10个随机圆,随机值应与窗体的宽度和高度相关。
点的大小、线的粗细以及颜色均随机产生。
也可选择产生自定义的图案。
请写出相应程序,试验运行并捕捉结果图片,要求图片上要有自己的名字。
实验2 计算机图形变换程序设计实验目的:通过本实验了解计算机图形变换的基本原理,掌握计算机图形变换的基本方法,能完成简单的图形变换程序设计。
实验内容:1、设计一个如图所示的图形,然后可以将其任意平移。
参考程序如下:Dim x1%, x2%, y1%, y2%‘---------------------------------------------Private Sub Form_Load()'请先将窗体的AutoReDraw属性设为TrueScale (-320, 240)-(320, -240)ClsLine (-320, 0)-(320, 0) '画坐标轴Line (0, 240)-(0, -240)x1 = 0: x2 = 100y1 = 0: y2 = 80Line (x1, y1)-(x2, y2), QBColor(12), BEnd Sub‘---------------------------------------------Private Sub menuh_Click() ‘水平平移过程x = InputBox("请输入水平平移距离", "水平平移", 10)Line (x1, y1)-(x2, y2), QBColor(7), Bx1 = x1 + xx2 = x2 + xLine (x1, y1)-(x2, y2), QBColor(12), BEnd Sub‘---------------------------------------------Private Sub menur_Click() ‘图形还原过程Form_LoadEnd Sub‘---------------------------------------------Private Sub menuv_Click() ‘垂直平移过程y = InputBox("请输入垂直平移距离", "垂直平移", 10)Line (x1, y1)-(x2, y2), QBColor(7), By1 = y1 + yy2 = y2 + yLine (x1, y1)-(x2, y2), QBColor(12), BEnd Sub2、设计一个如图所示的图形,然后可以将其任意旋转。
参考程序如下:Dim x!(1 To 4), y!(1 To 4), alpha!‘---------------------------------------------Private Sub Form_Load()'请先将窗体的AutoReDraw属性设为TrueScale (-320, 240)-(320, -240)ClsCircle (0, 0), 100Line (-320, 0)-(320, 0) '画坐标轴Line (0, 240)-(0, -240)x(1) = 0: x(2) = 100: x(3) = 100: x(4) = 0y(1) = 0: y(2) = 0: y(3) = 80: y(4) = 0For i = 1 To 3Line (x(i), y(i))-(x(i + 1), y(i + 1)), QBColor(12)Next iEnd Sub‘-------------------------------------------Private Sub menuc_Click() ‘图形旋转过程alpha = Val(InputBox("请输入旋转角度", "旋转", 10)) * 3.14159 / 180For i = 1 To 3Line (x(i), y(i))-(x(i + 1), y(i + 1)), QBColor(7)Next iFor i = 1 To 4xx! = x(i) * Cos(alpha) - y(i) * Sin(alpha)yy! = x(i) * Sin(alpha) + y(i) * Cos(alpha)x(i) = xxy(i) = yyNext iFor i = 1 To 3Line (x(i), y(i))-(x(i + 1), y(i + 1)), QBColor(12)Next iEnd Sub‘---------------------------------------------Private Sub menur_Click() ‘图形还原过程Form_LoadEnd Sub3、设计一个程序,使任意位置的一个矩形以其左下角为中心旋转15度。
请写出相应程序,试验运行并捕捉结果图片,要求图片上要有自己的名字。
实验3 计算机图形动画程序设计实验目的:通过本实验了解计算机图形动画的基本原理,掌握控制计算机图形有计划的移动或改变形状和尺寸的方法,初步掌握计算机图形动画的程序设计。
实验内容:1、移动矩形。
(1)设计窗体如下:其中各对象的部分属性如下:矩形(Shape控件)名称:shpCard梅花(Image控件)名称:imgClub方块(Image控件)名称:imgDiamond红心(Image控件)名称:imgHeart黑桃(Image控件)名称:imgSpade标签(Label控件)名称:lblEnter按钮(Command控件)名称:cmdClose底条(PictureBox控件)名称:picStatus注意:所有的Icon文件位于\Program Files\Microsoft VisualStudio\Common\ Graphics\ Icons\Misc文件夹中(2)设计代码如下:Private Sub cmdClose_Click()Unload MeEnd SubPrivate Sub Form_Load()shpCard.Left = -500End SubPrivate Sub imgClub_Click()shpCard.Left = imgClub.LeftpicStatus.ClspicStatus.Print "选中: 梅花"End SubPrivate Sub imgDiamond_Click() shpCard.Left = imgDiamond.LeftpicStatus.ClspicStatus.Print "选中: 方块"End SubPrivate Sub imgHeart_Click()shpCard.Left = imgHeart.LeftpicStatus.ClspicStatus.Print "选中: 红心"End SubPrivate Sub imgSpade_Click()shpCard.Left = imgSpade.LeftpicStatus.ClspicStatus.Print "选中: 黑桃"End Sub2、蝴蝶飞舞。
(1)设计窗体如下:其中各对象的部分属性如下:三个图片框(PictureBox控件)名称分别为Btrfly、btrfly1和btrfly2;一个按钮(Command控件)名称:Okay;一个计时器(Timer控件)Interval值:200。
窗体设计好之后,要缩小到下面两个图片框不可见为宜。