• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于VB的雨雪天氣現(xiàn)象模擬實現(xiàn)

    2013-04-29 23:41:10李道煒
    關鍵詞:天氣現(xiàn)象雨滴雪花

    李道煒

    摘要:針對下雨和下雪常見的天氣現(xiàn)象,利用VB的可視化編程技術,實現(xiàn)對下雨和下雪的動畫模擬。

    關鍵詞:下雨下雪計算機模擬

    0 引言

    冬天是下雨和下雪較多的季節(jié),目前很多都是用Flash軟件來模擬下雪和下雨的過程,Microsoft Visual Basic是廣泛應用的通用的可視化編程軟件開發(fā)工具,具有非常強大的圖形處理功能,加之VB 簡單易學,使用方便,有許多功能強大的處理圖形圖像的控件與函數(shù),便于實現(xiàn)較為逼真的軟件模擬環(huán)境。同時實現(xiàn)此功能的VB程序代碼實現(xiàn)比較容易,而且采用面向?qū)ο蟮木幊谭椒ǎ梢院芊奖愕剡M行擴展。

    1 實現(xiàn)方法

    由于是在計算機屏幕上模擬下雨和下雪現(xiàn)象,因此當“雨滴”或“雪花”到達屏幕底部時要進行復原,用Rangomize初始化隨機數(shù)發(fā)生器,并采用兩種不同的方法觸發(fā):在模擬“下雨”的程序中,利用一個計時器,通過不斷地繪制不同圓心和半徑的小圓來表示“雨滴”。在模擬“下雪”的程序中,采用無限循環(huán),并利用DoEvents函數(shù),當雙擊鼠標左鍵時,才使模擬程序中斷循環(huán),并返回。具體實現(xiàn)流程如圖1和圖2所示。

    2 程序?qū)崿F(xiàn)和模擬效果

    定義全局數(shù)組Snow(1000,1)表示“雪花”在屏幕上的坐標,Scolor(1000)表示坐標點的顏色,Snumber為設定的“雪花”數(shù)量。Rain(1000,1)表示“雨滴”在屏幕上的坐標,Rsize(1000)為“雨滴”大小,Rdelta(1000)為間隔。主要程序如下:

    Dim Snow(1000, 1),Scolor(1000), Snumber As Integer

    Private Sub Form_Load()

    Fsnow.Show

    DoEvents

    Randomize: Snumber = 400

    For j = 1 To Snumber

    Snow(j, 0) = Int(Rnd * Fsnow.Width)

    Snow(j, 1) = Int(Rnd * Fsnow.Height)

    Scolor(j) = 10 + (Rnd * 20)

    Next j

    Do While Not (DoEvents = 0)

    For ls = 1 To 10

    For i = 1 To Snumber

    oldx = Snow(i, 0)

    oldy = Snow(i, 1)

    Snow(i, 1) = Snow(i, 1) + Scolor(i)

    If Snow(i, 1) > Fsnow.Height Then

    Snow(i, 1) = 0

    Scolor(i) = 5 + Rnd * 30

    Snow(i, 0) = Int(Rnd * Fsnow.Width)

    oldx = 0

    oldy = 0

    End If

    coloury = 8 * (Scolor(i) - 10)

    coloury = 60 + coloury

    PSet (oldx, oldy), QBColor(0)

    PSet (Snow(i, 0), Snow(i, 1)), RGB(coloury, coloury, coloury)

    Next i

    Next ls

    Loop

    End Sub

    Private Sub Form_DblClick()

    End

    End Sub

    運行后得到的效果如圖3所示:

    Dim Rain(1000,1), Rdelta(1000), Rsize(1000) ,Rnumber As Integer

    Private Sub Form_Load()

    Randomize

    Rnumber=1000

    For i = 1 To Rnumber

    Rx1 = Int(FRain.Width * Rnd)

    Ry1 = Int(FRain.Height * Rnd)

    Rdelt1 = Int(500 - (Int(Rnd * 499)))

    Rsize1 = 25 * Rnd

    Rain(i,0) = Rx1

    Rain(i,1) = Ry1

    Rdelta(i) = Rdelt1

    Rsize(i) = Rsize1

    Next

    End Sub

    Private Sub Timer1_Timer()

    For i = 1 To Rnumber

    Circle (Rain(i,0), Rain(i,1)), Rsize(i), BackColor

    Rain(i,1) = Rain(i,1) + Rdelta(i)

    If Rain(i,1) >= Frain.Height Then

    Rain(i,1) = 0:

    Rain(i,0) = Int(Frain.Width * Rnd)

    End if

    Circle (Rain(i,0), Rain(i,1)), Rsize(i)

    Next

    End Sub

    Private Sub Form_DblClick()

    End

    End Sub

    運行后得到的效果如圖4所示:

    3 結(jié)束語

    將常見的天氣現(xiàn)象用圖形化的編程語言實現(xiàn)計算機模擬,取得了較好的效果,本文只是對較普通的現(xiàn)象進行了模擬。由于天氣現(xiàn)象變化無常,要準確及時模擬各種天氣現(xiàn)象,還需要設計復雜的算法和進行高級的編程??傊ㄟ^計算機模擬天氣現(xiàn)象,對自然界的現(xiàn)象有了進一步的理解和認識,為今后進一步的開發(fā)研究奠定了基礎。

    參考文獻:

    [1]汪洋.基于VB的模擬仿真技術的實現(xiàn)[J].荊門職業(yè)技術學院學報,2007年6月.

    [2]馮宏偉,羅宏.基于VB的自動繪制立面圖程序的設計[J].城市勘測,2012年1期.

    [3]陳錦昌等.VB計算機繪圖教程[M].華南理工大學出版社,2003.

    [4]薛建忠.基于VB語言的物理實驗模擬[J].江蘇技術師范學院學報,2003年12月.

    猜你喜歡
    天氣現(xiàn)象雨滴雪花
    《奇怪的天氣:關于天氣的50個秘密》
    少兒科技(2022年2期)2022-03-05 23:07:07
    小雨滴
    草原歌聲(2020年3期)2020-12-08 22:22:28
    可愛的小雨滴
    學生天地(2020年24期)2020-06-09 03:08:56
    與龍卷風共舞
    小雨滴
    新巴爾虎左旗常見天氣現(xiàn)象分析
    天氣現(xiàn)象的隱喻化方式分析
    如果我是一片雪花
    雪花
    淘氣的小雪花
    湟源县| 阜南县| 南部县| 庄河市| 福州市| 屯昌县| 榆社县| 阜新| 瑞安市| 鹿邑县| 天津市| 昔阳县| 高碑店市| 德化县| 金溪县| 即墨市| 新营市| 阳曲县| 磴口县| 宝应县| 二连浩特市| 广水市| 房产| 江孜县| 德钦县| 桃源县| 达州市| 成武县| 清涧县| 琼海市| 合川市| 荃湾区| 贺兰县| 龙山县| 天柱县| 方正县| 剑河县| 普陀区| 萨迦县| 游戏| 固安县|