-
vb教程之VB随机图像的魅力
VB提供了相当强的文字输出和绘图功能, 可以在窗口或图形框中利用各种命令显示字体或绘制各种图形。灵活使用这些命令,不仅可以完成许多特殊的功能, 而且可以为Windows的程序界面增加许多活力。下面用简单的例子演示VB中随机动画的风采。
(一)、随机文字动画
在VB中可利用Print命令进行字符串的显示工作,此命令一般只在当前位置显示字符串, 但具体操作时可通过CurrentX和CurrentY 控制字符串显示位置,通过FontSize控制字体的尺寸, 通过ForeColor和BackColor控制字符的前景色和背景色。 如果把上述的各项属性值均采用RND 进行随机产生, 即会形成随机字符显示效果。比如在一个图形框中显示一些新年贺辞, 同时播放美妙的音乐, 那将是一份极好的新年礼物。需要注意一点,由于字体互相覆盖,长时间显示会使窗口显得乱一些,所以最好按一定时间用“CLS"命令进行窗口清除。此处说明一下颜色的控制技巧,如果使用QBColor(Rnd*15)方式定义随机颜色,只能在16种颜色中随机产生, 而采用RGB(Rnd*256,Rnd*256,Rnd*256)方式,则可以产生256*256*256种不同的颜色。具体操作方式请见文后Command1-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)
如果把屏幕的底色置为暗黄色, 在此窗口内的随机位置画出大小不一的三角锥, 就像在黄色的沙漠上建起了无数的金字塔, 具有一种特殊的情趣。具体操作方法请见文后程序中的Command2-Click事件中的代码。
(三)、演示程序编制过程
文后是一个完成上述随机动画的完整演示程序,需要在From1 窗体中安放一个图形框Picture1及三个命令按钮Command1-3, 然后把下面的代码填入相应的事件处。运行此程序之后, 按下按钮1 ,则在图形框中进行随机文字显示。按下按钮 2,则在图形框中随机显示三角锥体。按下按钮3,则退出程序。此程序在Windows 95系统上VB5.0 环境下调试通过。
′程序准备:
Private Sub Form-Load()
Command1.Caption = ″随机文字″
Command2.Caption = ″立体图形″
Command3.Caption = ″退出″
Form1.ScaleMode = 1
Picture1.ScaleMode = 1
End Sub
′随机文字动画
Private Sub Command1-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 Command2-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 Command3-Click()
End
End Sub
(一)、随机文字动画
在VB中可利用Print命令进行字符串的显示工作,此命令一般只在当前位置显示字符串, 但具体操作时可通过CurrentX和CurrentY 控制字符串显示位置,通过FontSize控制字体的尺寸, 通过ForeColor和BackColor控制字符的前景色和背景色。 如果把上述的各项属性值均采用RND 进行随机产生, 即会形成随机字符显示效果。比如在一个图形框中显示一些新年贺辞, 同时播放美妙的音乐, 那将是一份极好的新年礼物。需要注意一点,由于字体互相覆盖,长时间显示会使窗口显得乱一些,所以最好按一定时间用“CLS"命令进行窗口清除。此处说明一下颜色的控制技巧,如果使用QBColor(Rnd*15)方式定义随机颜色,只能在16种颜色中随机产生, 而采用RGB(Rnd*256,Rnd*256,Rnd*256)方式,则可以产生256*256*256种不同的颜色。具体操作方式请见文后Command1-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)
如果把屏幕的底色置为暗黄色, 在此窗口内的随机位置画出大小不一的三角锥, 就像在黄色的沙漠上建起了无数的金字塔, 具有一种特殊的情趣。具体操作方法请见文后程序中的Command2-Click事件中的代码。
(三)、演示程序编制过程
文后是一个完成上述随机动画的完整演示程序,需要在From1 窗体中安放一个图形框Picture1及三个命令按钮Command1-3, 然后把下面的代码填入相应的事件处。运行此程序之后, 按下按钮1 ,则在图形框中进行随机文字显示。按下按钮 2,则在图形框中随机显示三角锥体。按下按钮3,则退出程序。此程序在Windows 95系统上VB5.0 环境下调试通过。
′程序准备:
Private Sub Form-Load()
Command1.Caption = ″随机文字″
Command2.Caption = ″立体图形″
Command3.Caption = ″退出″
Form1.ScaleMode = 1
Picture1.ScaleMode = 1
End Sub
′随机文字动画
Private Sub Command1-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 Command2-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 Command3-Click()
End
End Sub
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比