• 
    

    
    

      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)象的隱喻化方式分析
      如果我是一片雪花
      雪花
      淘氣的小雪花
      灵寿县| 客服| 蒙阴县| 米易县| 应城市| 大丰市| 洛南县| 海阳市| 云龙县| 合江县| 桃江县| 山西省| 丹巴县| 芮城县| 鄂托克前旗| 红安县| 乌鲁木齐县| 扶风县| 辽宁省| 普陀区| 新巴尔虎左旗| 阿拉善盟| 栾城县| 岫岩| 武功县| 馆陶县| 台湾省| 屏东市| 当雄县| 太保市| 沾益县| 贡嘎县| 周口市| 五大连池市| 宁河县| 六安市| 巨鹿县| 葫芦岛市| 颍上县| 叶城县| 新昌县|