VB实验报告

来源:互联网 发布:it软件解决方案 编辑:程序博客网 时间:2024/04/30 02:05

VB语言实验报告

这次的程序设计,在老师没有给出事例程序下,自己第一次设计做出。因为VB语言学习还不够好所以从网络上搜索学习了作业的相关的命令与设计。

一、随机简单图形动画

完成此工作主要的直接使用VB中的作图命令, 比如画 点函数PSet(X,Y),COLOR, 其中X Y为图形坐标系统的坐标, COLOR表示颜色值,可用QBColor(x)或RGB(r,g,b)等形式表 示, 同时可以控制画点的半径长度,即通过设置Drawwidth 属性, 当半径大于1时实际上此命令是画一个实心圆,当然 也可以利用Circle命令直接绘制圆形。VB中还提供了随机 数产生手段,即RND内部函数, 它可以产生0到1之间的随机 数, 利用此函数可以随机确定画点的位置、点的颜色、点 的半径等,这样即可以实现在固定区域内进行随机画圆操 作, 其中随机位置的确定必须根据作图区域进行确定, 具 体可用 ScaleWidth及Scaleheight属性进行确定。为了实 现连续动画效果,可利用时间控件或"DoEvents" 命令实现 后台处理, 具体请见文后的Command1_Click事件中的程序 代码。如果把程序改为随机画矩形或空心圆,或者灵活控 制画圆的半径, 则会产生另外的艺术效果, 比如在一片黑 色的屏幕上画出随机的小点, 就象夜空中的点点繁星。

二、随机文字动画

在VB中可利用"Print"命令进行字符串的显示工作,此 命令一般只在当前位置显示字符串, 但具体操作时可通过 CurrentX和CurrentY 控制字符串显示位置,通过FontSize 控制字体的尺寸, 通过ForeColor和BackColor控制字符的 前景色和背景色, 如果把上述的各项属性值均采用RND 进 行随机产生, 即会形成随机字符显示效果, 比如在一个图 形框中显示一些新年贺辞, 同时播放美妙的音乐, 那将是 一份极好的新年礼物。需要注意一点,由于字体互相覆盖, 长时间显示会使窗口显得乱一些,所以最好按一定时间用 "CLS"命令进行窗口清除。此处说明一下颜色的控制技巧, 如果使用QBColor(Rnd*15)方式定义随机颜色,只能在16种 颜色中随机产生, 而采用RGB(Rnd*256,Rnd*256,Rnd*256) 方式则可以产生256*256*256种不同的颜色,但具体的颜色 特性受当前WINDOWS 屏幕模式的限制。具体操作作方式请见 文后Command2_Click事件中的代码。

三、立体图形随机动画

上面只是直接利用绘图语句进行简单的动画, 如果通 过这些命令绘制成一定的立体图形, 并实行随机动画操作, 那将更具有特殊的艺术效果。比如下面两行简单的命令将 画出一个具有强烈立体感效果的三角锥体, 其中(M,N) 为 锥体的顶端坐标:

Picture1.Line(m,n+2.5*i)-(m+i/2,n+2*i),

RGB(180,180,180)

Picture1.Line(m,n+2.5*i)-(m-i/2,n+2*i),

RGB(80,80,80)

如果把屏幕的底色置为暗黄色, 在此窗口内的随机位置画 出大小不一的三角锥, 就象在黄色的沙漠上建起了无数的 金字塔, 具有一种特殊的情趣。具体操作方法请见文后程 序中的Command3_Click事件中的代码。

四、随机显示图像

在VB中不仅提供了完善的做图方法, 而且在绘图方法 中还可以灵活的处理图像文件, 其中提供了一个方便的图 像复制命令即: PaintPicture, 此命令的功能与API 函数 BitBlt类似, 但由于不用做API函数说明,所以更有它的方 便之处, 语法格式:

PaintPicture Pic,destX,destY,

destWidth,destHeight,

scrX,scrY,scrWidth,scrHeight

其中Pic:为图片对象, 如图形框Picture等;

destX,destY:目标图像位置;

destWidth,destHeight:目标图像尺寸;

scrX,scrY:原图像的裁剪坐标;

scrWidth,scrHeight:原图像的裁剪尺寸;

从以上可以看出,目标图像的位置可以随机改变,不仅如 此,通过改变destWidth与destHeight值,还可以改变复制 后的图像的尺寸, 实现放大或缩小图像显示, 甚至可以置 这两个属性为负值, 这样可使目标图像在水平方向翻转, 实现特殊效果的图像显示, 灵活运用RND 随机函数确定上 述各个参数, 可取得理想的随机图像显示效果。具体操作 方法请见文后程序Command4_Click事件中的代码。

文后是一个完成上述随机动画的完整演示程序,需要 在From1 窗体中安放两个图形框Picture(1-2)及四个命令 按钮Command1-5,然后把下面的代码填入相应的事件处,运 行此程序之后,按下按钮1则在图形框中进行随机画圆演示, 按下按钮2 则在图形框中进行随机文字显示, 按下按钮 3 则在图形框中随机显示三角锥体, 按下按钮4 则进行随机 图像显示, 按下按钮5 则退出程序。此程序在WINDOWS 95 系统下VB4.0环境下调试通过。

程序准备

Private Sub Form_Load()

Command1.Caption = "随机画圆"

Command2.Caption = "随机文字"

Command3.Caption = "立体图形"

Command4.Caption = "随机图像"

Command5.Caption = "退出"

Form1.ScaleMode = 1

Picture1.ScaleMode = 1

Picture2.Picture = LoadPicture

("d:\windows\256color.bmp")

End Sub

随机画圆动画

Private Sub Command1_Click()

Dim XPos, YPos

Picture1.Cls

Do

nn = Int(100 * Rnd)

If nn > 0 Then

Picture1.DrawWidth = nn

End If

XPos = Rnd * Picture1.ScaleWidth

YPos = Rnd * Picture1.ScaleHeight

Picture1.PSet (XPos, YPos), RGB

(Rnd * 256, Rnd * 256, Rnd * 256)

DoEvents

Loop

End Sub

随机文字动画

Private Sub Command2_Click()

Picture1.Cls

Do

nn = Int(45 * Rnd)

If nn > 0 Then

Picture1.FontSize = nn

End If

Picture1.CurrentX =

Rnd * Picture1.ScaleWidth - 1000

Picture1.CurrentY =

Rnd * Picture1.ScaleHeight

Picture1.ForeColor =

RGB(Rnd * 256, Rnd * 256, Rnd * 256)

Picture1.Print "随机OK!"

n = n + 1

If n > 50 Then

n = 0

Picture1.BackColor = QBColor(Rnd * 15)

End If

DoEvents

Loop

End Sub

立体随机动画

Private Sub Command3_Click()

Dim m, n

Picture1.DrawWidth = 1

Picture1.BackColor = RGB(210, 150, 0)

Picture1.Cls

Do

m = Rnd * Picture1.ScaleWidth

n = Rnd * Picture1.ScaleHeight - 500

For i = 0 To Rnd * 800

Picture1.Line(m,n+2.5*i)-(m+i/2,n+2*i),

RGB(180,180,180)

Picture1.Line(m,n+2.5*i)-(m-i/2,n+2*i),

RGB(80,80,80)

Next i

DoEvents

Loop

End Sub

随机图像显示

Private Sub Command4_Click()

Do

xx = Rnd * Picture1.Width

yy = Rnd * Picture1.Height

Picture1.PaintPicture Picture2.

Picture, xx, yy,

Picture2.Width, Picture2.Height

DoEvents

Loop

End Sub

退出按钮

Private Sub Command5_Click()

End

End Sub

  • 赞赞赞赞
  • 转载
  • 分享
  • 评论
  • 复制地址
  • 编辑