码迷,mamicode.com
首页 > 其他好文 > 详细

ActionScript3游戏中的图像编程(连载六十三)

时间:2014-09-02 17:54:05      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:actionscript 3.0   flash   图像处理   游戏   数学   

4.1.6 田忌赛马矩阵乘法的推广——资源的重组与分配


      将变换矩阵抽象出来以后,矩阵乘法的应用会将更加广泛,它不再局限于简单的位置调整。如果把上述案例中的3匹马换成军队中的3个连,则我们可以通过矩阵实现士兵的部分调度及资源重整。例如,第2连的士兵在上一次战斗中损失惨重,需要第1连的支援30%的士兵,就可以用如下的矩阵表示:

 

bubuko.com,布布扣


 
      结合单位矩阵,我们将会更好理解矩阵对士兵进行调度的过程。与单位矩阵相比较,该矩阵只有第一列的两个元素发生更改,也就是说,只有第1连的士兵发生调度,第一列第一行的元素为1-0.3,意味着第一连有30%的士兵要离开。而第二列第一行从单位矩阵的0增加到0.3,说明第二列有士兵增加,它恰好等于第一连士兵总数的30%,也就是说,通过这一变换,第1连有30%的士兵被调到了第2连。


      从这一现象我们不难看出,矩阵的乘法一定不满足类似于实数乘法的交换律。假如一段时间之后,第2连的兵力得到了恢复,资源不再短缺,可以将40%的士兵调回第1连,则整个调度过程可以表示为:

 

      bubuko.com,布布扣


 
      按常人的逻辑来推理,如果把这两个调度过程对调,即先从第2连调度40%的士兵到第1连,然后再从第1连士兵中拿出30%调回第2连,就多半会得到不一样的结果。
实数的乘法交换律对矩阵不适用,可用矩阵乘法表示这一性质(读者可以自行代入证明):

 

      bubuko.com,布布扣

 
      这点在ActionScript的变换中也同样需要注意,矩阵的变换顺序不能随意更改,因为矩阵大部分的转换都基于乘法。


      如果调度的是具体的士兵数量(比如30名),则可以用回之前的矩阵加减法:

 

      bubuko.com,布布扣


 
      可见,虽然矩阵加减法并没有帮助田忌赢得比赛,但这并不代表它一无是处。矩阵的使用相当灵活,只有掌握了逻辑学中的对策论,学会因势利导,统筹帷幄,才能把矩阵这一工具运用得恰到好处,方可把它变换的优势发挥得淋漓尽致。

 


 

ActionScript3游戏中的图像编程(连载六十三)

标签:actionscript 3.0   flash   图像处理   游戏   数学   

原文地址:http://blog.csdn.net/iloveas2014/article/details/39007359

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!