ActionScript3遊戲中的映像編程(連載六十三)

來源:互聯網
上載者:User

標籤:actionscript 3.0   flash   影像處理   遊戲   數學   

4.1.6 田忌賽馬矩陣乘法的推廣——資源的重組與分配


      將變換矩陣抽象出來以後,矩陣乘法的應用會將更加廣泛,它不再局限於簡單的位置調整。如果把上述案例中的3匹馬換成軍隊中的3個連,則我們可以通過矩陣實現士兵的部分調度及資源重整。例如,第2連計程車兵在上一次戰鬥中損失慘重,需要第1連的支援30%計程車兵,就可以用如下的矩陣表示:

 


 
      結合單位矩陣,我們將會更好理解矩陣對士兵進行調度的過程。與單位矩陣相比較,該矩陣只有第一列的兩個元素髮生更改,也就是說,只有第1連計程車兵發生調度,第一列第一行的元素為1-0.3,意味著第一連有30%計程車兵要離開。而第二列第一行從單位矩陣的0增加到0.3,說明第二列有士兵增加,它恰好等於第一連士兵總數的30%,也就是說,通過這一變換,第1連有30%計程車兵被調到了第2連。


      從這一現象我們不難看出,矩陣的乘法一定不滿足類似於實數乘法的交換律。假如一段時間之後,第2連的兵力得到了恢複,資源不再短缺,可以將40%計程車兵調回第1連,則整個調度過程可以表示為:

 

     


 
      按常人的邏輯來推理,如果把這兩個調度過程對調,即先從第2連調度40%計程車兵到第1連,然後再從第1連士兵中拿出30%調回第2連,就多半會得到不一樣的結果。
實數的乘法交換律對矩陣不適用,可用矩陣乘法表示這一性質(讀者可以自行代入證明):

 

     

 
      這點在ActionScript的變換中也同樣需要注意,矩陣的變換順序不能隨意更改,因為矩陣大部分的轉換都基於乘法。


      如果調度的是具體計程車兵數量(比如30名),則可以用回之前的矩陣加減法:

 

     


 
      可見,雖然矩陣加減法並沒有協助田忌贏得比賽,但這並不代表它一無是處。矩陣的使用相當靈活,只有掌握了邏輯學中的對策論,學會因勢利導,統籌帷幄,才能把矩陣這一工具運用得恰到好處,方可把它變換的優勢發揮得淋漓盡致。

 


 

ActionScript3遊戲中的映像編程(連載六十三)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.