• 
    

    
    

      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)象的隱喻化方式分析
      如果我是一片雪花
      雪花
      淘氣的小雪花
      原平市| 萍乡市| 新郑市| 土默特左旗| 甘泉县| 许昌县| 汤阴县| 镇远县| 淳安县| 九寨沟县| 雷州市| 奉贤区| 玉环县| 迁安市| 安多县| 土默特右旗| 太谷县| 乡宁县| 来凤县| 安吉县| 衡阳市| 宜黄县| 平罗县| 潮安县| 云南省| 自治县| 尼木县| 牡丹江市| 始兴县| 开原市| 封开县| 临泽县| 米泉市| 娄底市| 蓝山县| 安化县| 从江县| 比如县| 易门县| 宜良县| 新泰市|