f2etw / book

2014 f2e gitbook
9 stars 0 forks source link

steering behavior 簡介 #9

Open amoyeh opened 9 years ago

amoyeh commented 9 years ago

移動行為介紹

人工智能的研究中,有一相關領域為模擬真實物體有規畫性的移動及群體移動,這些研究的結果被廣泛的運用在生活中,本文針對 Steering Behaviors 這項解決物體移動的研究昨個別介紹,此解決方案將常見的物體移動方式分為不同項目,並探討如何透過數學及程式開發模擬。 最早由 Craig Reynolds 在 90 年代提出文獻。

seek Behavior

Seek Behavior 移動物件到指定目標方向

demo

Flee Behavior

Flee Behavior 往目標座標的反方向移動

demo

Pursuit Behavior

Pursuit Behavior 追尋目標物件將來移動到的座標

demo

Evade Behavior

Evade Behavior 往目標物件將來移動到的座標反方向移動

demo

Wander Behavior

在物件前方建立一個圓形導引,每次更新時,設定目前的 velocity 做為開始角度,隨機改變圓形的角度後追尋此改變後方向

demo

Flocking Behavior Separation

在物體圓徑涵蓋的範圍下取得所有其他物件,計算這些物件座標平均值後,移動反方向

demo

Flocking Behavior Cohesion

在物體圓徑涵蓋的範圍下取得所有其他物件,計算這些物件座標平均值後,移動該座標方向

demo

Flocking Behavior Alignment

在物體圓徑涵蓋的範圍下取得所有其他物件,計算這些物件 velocity 平均值後,改變自己 velocity 方向

demo

Obstacle Avoidance

在物件前方及斜前方投射三個未來位置指示,若碰觸到多角形則往產生折射方向,若碰觸到圓形則運算透過圓形中心的折射方向

demo

Path Following

如果物件在路徑寬度外,計算物件將來座標與路徑最近的 90 度垂直點,並產生指向垂直點前方的力量

demo

Unit Avoidance Opposite

運算兩個物件未來碰撞座標,若靠進且相對方向小於 45 度時,往自已的右方移動

demo

Unit Avoidance Side

運算兩個物件未來碰撞座標,若靠進且相對方向約於 45 ~ 135 度時,較慢到達的物體產生反方向力量移動達到減數,較快到達之物件則無需改變

demo

Unit Avoidance Parallel

運算兩個物件未來碰撞座標,若靠進且方向接進平行時,產生兩物體往反方向移動力量

demo

steer.js 程式庫介紹

steer.js 程式庫可用來模擬物件移動效果,目前開發透過 typescript 編寫,支援 pixi.js 除錯顯示。 是由作者在 2014 年 5 月 利用空閒時間開始針對此項目的研究,剛開始只是興趣學習了解原理及解決方式,在透過搜尋後發現網路上此專題的程式庫有限, 且 javascript 尚無類似程式庫。於是開始了開發 steer.js 這套人工智能的引擎,除了自己興趣外,也希望能幫助到更多人學習此領域。 目前 steer.js 還在初期的開發階段,有興趣可參閱下列連結。

官方網站 (beta版) Github 及原始碼 線上文件 範例 (中文註解)

Rplus commented 9 years ago

哇屋~ 這篇好學理呀~~ 請問裡面精美的圖片是自己畫的嗎 ? 感覺好費工呢~ XDD

amoyeh commented 9 years ago

謝謝你留言,是的都是自己畫的,是steer.js程式庫介紹的一部分

DerekHung commented 9 years ago

非常感謝您的投稿!在近日內會公布此次徵稿活動的結果,敬請期待:D