亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Boids算法在Unity3D開發(fā)平臺中模擬生物群組行為中的應用研究

        2019-06-05 02:51:54王永霞
        網(wǎng)絡安全技術與應用 2019年5期
        關鍵詞:群組調(diào)用間距

        ◆王永霞

        Boids算法在Unity3D開發(fā)平臺中模擬生物群組行為中的應用研究

        ◆王永霞

        (山西經(jīng)濟管理干部學院 山西 030000)

        本文結(jié)合Unity3D開發(fā)平臺,對Boids算法在生物群組行為中的模擬應用展開了深入研究。并針對群組中移動軌跡隨機更新的復雜行為模擬,提出了Boids算法的改進策略,重點解決了群組行為的隨機更新問題。

        Unity3D;3D模擬;群組行為;Boids算法

        0 引言

        Unity3D是一款3D模擬軟件開發(fā)引擎,基于Unity3D實現(xiàn)組群行為模擬控制,其提供有典型的算法參考模型是基于Craig Reynold(逃出克隆島)模擬場景的群組行為示例[2]。Boids算法就是在Craig Reynold中被首次提出的。

        Boids算法中每個boid都會應用群組行為的三個規(guī)則[3]。分離規(guī)則,保證相鄰的boid之間能夠保持適當?shù)木嚯x,不會發(fā)生擁擠與碰撞;隊列規(guī)則,保證了群組在移動速度和移動方向上對各個boid的有效約束;凝聚規(guī)則,對boid的移動位置進行約束,避免其脫離群組行為的控制范圍。通過規(guī)則的應用,模擬場景生成的若干boid,會自動形成群組。

        1 Boids算法設計

        在Boids算法設計中首先會創(chuàng)建一個群組的核心節(jié)點,再通過核心節(jié)點來生成其他的群組成員,并對其進行行為約束。也就是說在Boids算法中主要包括兩個被控制對象:群組的領導者(核心節(jié)點FlockBoid)與其他boid。當群組的領導者的移動行為發(fā)生變化,boid也將隨之進行調(diào)整。設計思路為:首先由FlockBoid動態(tài)生成很多個boid,然后在每個boid上實現(xiàn)群組規(guī)則。其中分離規(guī)則用于依次檢查boid的間距,并相應地調(diào)整速度;隊列規(guī)則通過群組的平均速度與航向、boid的隨機速度,獲得當前boid的最速度與角度;凝聚規(guī)則是以FlockBoid為中心,預設群組的凝聚范圍和FlockBoid與各個boid的之間的向量值,用于更新當前boid的移動速度與方向。

        2 Boids算法實現(xiàn)

        Boids算法主要是運用空間幾何的概念實現(xiàn)對群組行為的模擬控制,在核心部分需要遍歷每一個boid,分別計算當前boid與其他相鄰節(jié)點的間距,再通過與預設的各個規(guī)則下所生成的約束值比對,來動態(tài)更新boid的移動速度與角度。

        假設FlockBoid為組群原點,三維坐標為(,,),當前boid為,三維坐標值為(1,1,1),相鄰任一節(jié)點為,三維坐標值為(2,2,2),依據(jù)向量三角形法則及投影定律可知:

        3 Boids算法在群組行為中的應用分析

        在Unity3d中,Boids算法僅實現(xiàn)了一個簡單的鳥群移動行為,能夠適用于大部分生物類群組行為的3D模擬,但在真實環(huán)境中,很多生物群組行為要比這復雜得多,例如群組行為中障礙物的躲避、群組移動路徑的隨機更新等。群組中個體行為通常會比較簡單,但群組行為絕不是個體行為的簡單疊加,任何一件隨機事件的產(chǎn)生都可能導致群組行為在結(jié)構(gòu)、模式和行為上發(fā)生變化[4]。為了使得群組行為模擬更加接近真實自然的效果,對一些較為復雜的群組行為實現(xiàn)模擬控制是非常必要的。

        4 Unity3D中復雜群組行為的算法改進策略

        在Boids算法中隨機性策略的算法改進思路主要是通過隨機生成的移動目標來改變?nèi)航M的移動軌跡。

        在Boids算法中,F(xiàn)lockBoid作為群組的領導者,群組中的boid都是跟隨著FlockBoid移動的。因此在改進算法中,隨機目標的更新主要是針對FlockBoid的,當FlockBoid的軌跡發(fā)生變化,群組中所有成員的軌跡也會跟著發(fā)生變化,如圖1所示:

        圖1 隨機移動軌跡中隨機策略的應用思路

        在Unity3D內(nèi)部封裝的Random類提供的Range()函數(shù)可以在用戶自定義的最小數(shù)與最大數(shù)之間隨機返回一個浮點型的數(shù)值,(這個范圍包含最小數(shù),但不包含最大數(shù))[5]。

        float posX=Random.Range(initPos.x-bound.x,init Pos.x+bound.x);

        float posY=Random.Range(initPos.y-bound.y,initPos.y+bound.y);

        float posZ=Random.Range(initPos.z-bound.z,initPos.z+bound.z);

        最后Range函數(shù)每被調(diào)用一次,就會對偏移量進行一次刷新,從而實現(xiàn)目標向量的不斷更新。因此還需要設置一個刷新機制,以確保每隔一段時間就可以對目標向量進行更新。

        Unity3D內(nèi)置有Update()函數(shù),該函數(shù)在系統(tǒng)運行時會被自動調(diào)用,調(diào)用頻率為每幀調(diào)用一次,大約每秒Update()函數(shù)會被調(diào)用千次以上。如果要在Update()內(nèi)實現(xiàn)移動目標的定時更新,還需要重新設定代碼的刷新頻率。具體實現(xiàn)步驟如下:

        ( 1 ) 獲取FlockBoid當前的移動位置,以三維坐標(,,)表示;

        ( 2 ) 獲取FlockBoid當前的移動目標,以三維坐標(,,)表示;

        ( 3 ) 計算FlockBoid從當前位置到移動目標的間距,公式如下:

        ( 4 ) 設定FlockBoid從當前位置到移動目標的最小間距為space,將與space進行比較,如果>space,說明FlockBoid距離移動目標還比較遠,對移動目標不做位置更新;如果

        當隨機策略更新了移動目標后,F(xiàn)lockBoid也會隨之更新移動軌跡,向新的目標點移動,群組中所有節(jié)點也會通過對FlockBoid的追蹤,重新規(guī)劃各自的移動路徑。

        5 總結(jié)

        本研究主要圍繞Boids算法在Unity3D模擬生物群組行為中的應用展開深入研究,并在此基礎上對衍生出的復雜群組行為進行了討論,最后針對群組行為的移動軌跡更新問題,提出了基于Boids的隨機性改進策略。改進后的算法策略能夠為很多復雜的群組行為提供隨機性問題與路徑規(guī)劃問題的解決思路,從而有效改善群組行為的模擬效果。

        [1]Tenney R,Hebbert R,Sandell N Jr. A tracking filterfor maneuvering sources[J]. IEEE Transactions on AutomaticControl,1977,22(2):246-251.

        [2]Craig Reynolds. Boids Background and Update[EB/OL]. http://www.red3d.com/cwr/boids/,2001.

        猜你喜歡
        群組調(diào)用間距
        宋代君臣殿上間距考論
        核電項目物項調(diào)用管理的應用研究
        高速公路指揮中心小間距LED應用探討
        LabWindows/CVI下基于ActiveX技術的Excel調(diào)用
        測控技術(2018年5期)2018-12-09 09:04:46
        關系圖特征在敏感群組挖掘中的應用研究
        電子測試(2018年14期)2018-09-26 06:04:10
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術研究
        算距離
        基于統(tǒng)計模型的空間群組目標空間位置計算研究
        利用RFC技術實現(xiàn)SAP系統(tǒng)接口通信
        群組聊天業(yè)務在IMS客戶端的設計與實現(xiàn)
        97久久综合精品国产丝袜长腿| 波多野结衣亚洲一区二区三区| 在线观看国产三级av| 少妇一区二区三区精选| 日韩av免费在线不卡一区| 国产91在线精品观看| 粉嫩极品国产在线观看免费一区 | 成人影院免费视频观看| 媚药丝袜美女高清一二区| 人妻少妇被粗大爽.9797pw| 国模欢欢炮交啪啪150| 亚洲国产麻豆综合一区| 亚洲精品天堂在线观看| 顶级高清嫩模一区二区| 色与欲影视天天看综合网| 国产精品欧美成人| 久久尤物AV天堂日日综合| 91国产超碰在线观看| 一本色道久久88—综合亚洲精品 | 亚洲中文字幕每日更新| 性感人妻中文字幕在线| 国产三级视频不卡在线观看| 蜜桃视频无码区在线观看| 天码av无码一区二区三区四区 | 国产精品无码一区二区三区电影| 久久中文字幕人妻熟av女蜜柚m| 久久久久综合一本久道| 日韩女优视频网站一区二区三区 | 青草视频在线播放| 亚洲福利视频一区| 亚洲中文字幕高清视频| 少妇一级淫片中文字幕| 天下第二社区在线视频| 香蕉视频一级| 蜜臀一区二区av天堂| 漂亮丰满人妻被中出中文字幕| 日韩乱码人妻无码中文字幕久久 | 亚洲女同免费在线观看| 天天狠天天添日日拍| 亚洲无码一二专区| 东京热日本道免费高清|