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

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名),则可以用回之前的矩阵加减法:

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

时间: 2024-08-28 12:58:24

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

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

总目录:http://blog.csdn.net/iloveas2014/article/details/38304477 3.1.2 以小见大--从细节损失洞悉滤镜本质 把它再改回内斜角,边缘似乎光滑了些,但这种错觉仅仅是由于阴影与蓝色的对比度不够强烈,才会让边缘的粗糙不够显眼.把文字颜色调成浅紫以后,转角处的锯齿依旧一览无余.(图 3.6),而Photoshop应用同样的设置则不会出现同样的问题(图 3.7). 图 3.6 模糊值为3的内侧斜角滤镜 图 3.7 大小等于3的斜面样式 如果认为

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

1.1    ColorTransform对RGB数值的操作及应用 flash.geom.ColorTransform是Flash内置的一个色彩变换类.它支持色彩通道值的线性变换. 所谓线性变换,是指一次函数模式的变换:dst = src * multiplier + offset.您可以将每个通道的值与常量进行四则运算.对于ColorTransform类而言,通道的原数值和变换后的数值存在以下关系: 1 red(dst) = red(src) * redMultiplier + redOffs

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

1.3.2 软件中的拾色器如何实现HSB的色彩空间模型 阅读本书的朋友恐怕很少有机会见到圆柱形的三维取色器,而HSB模式却是一个立体的空间.那么,软件里的颜色拾取器是如何在平面里体现出3D坐标系的呢?让我们从Windows调色板开始研究.图 1.22是Windows系统调色板的界面,抛开左侧的颜色列表不谈,我们可以把Windows调色板分为两个部分:一个二维的平面和一个一维的滑块.乍一看似乎跟之前的圆柱体空间扯不上任何关系,不过有没发现,最右侧那个一维的条是不是跟圆柱体的母线很像,从上而下呈现出

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

2.2.9 Photoshop品质初探——等高线 我们点击等高线图标右侧的箭头,将弹出一个曲线列表(图 2.30). 图 2.30 等高线下拉列表 点击第二行第4个图标看看(图 2.31).哇塞,一个逆天的浮雕式投影效果. 图 2.31 给投影样式设置等高线 下面我们不妨开一下小差,做点好玩的东东,比如给投影拉出一点杂色,再将文字调成灰色(#CCCCCC),填充不透明度80%,同时把图层的混合模式改为“溶解”(混合模式将在后续章节给出详细的介绍),投影的挖空去掉,看起来就想雕刻在石碑上的文字.(

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

2.1.3 添加渐变叠加样式 我们再给文字添加一个渐变填充来加强质感,点击“渐变叠加”项(图 2.6). 图 2.6 添加渐变叠加样式 有一点金属的味道了,再点击渐变效果预览图打开渐变编辑器(图 2.7). 图 2.7 渐变编辑器 自带的渐变效果里面,红色标注的渐变最有金属的效果了,具有铜的光感和色泽.选定这种渐变,点击“确定”,效果如图 2.8所示. 图 2.8 铜色渐变编辑完成 在图层样式面板上点击“确定”,图层样式编辑完成. 虽然出来的结果依然比较丑,但这一测试足以让我们见识到PS的图层样

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

2.2.9 Photoshop品质初探--等高线 我们点击等高线图标右侧的箭头,将弹出一个曲线列表(图 2.30). 图 2.30 等高线下拉列表 点击第二行第4个图标看看(图 2.31).哇塞,一个逆天的浮雕式投影效果. 图 2.31 给投影样式设置等高线 下面我们不妨开一下小差,做点好玩的东东,比如给投影拉出一点杂色,再将文字调成灰色(#CCCCCC),填充不透明度80%,同时把图层的混合模式改为"溶解"(混合模式将在后续章节给出详细的介绍),投影的挖空去掉,看起来就想雕刻在石碑上

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

1.4.2 灰度的计算方法 回过头来看RGB,站在科学的角度来解释,它们确实也有更明亮的理由,因为下面一排色彩反射出来的色光总量是上一排色的两倍.      为此,作者曾自作聪明地发明了一条“原创”的灰度公式: Gray=(r+g+b)/3 哈哈,用色光总量来表达颜色的灰度想必就比较准确了吧!沾沾自喜一番以后,我还试着用这条自创的定律来转换这张测试图片,上下色块的灰度果然拉开了,可是很不幸地,左右相邻,边界分明的色块依然粘连在一块(图 1.30). 图 1.30 笔者“自创”的灰度转换 显然此法

ActionScript3游戏中的图像编程(连载二十一,第1章完)

1.4.3 用灰度/明度指导色彩搭配 试着只通过调整不等于0的通道,让上一排的色彩在灰度上保持一致,把三个颜色分别代入到心理学公式.得 Gray(red) = r * 0.299      Gray(green) = g * 0.587      Gray(blue) = b * 0.114 让它们灰度相等,则 r * 0.299 = g * 0.587 = b * 0.114 可见,b值一定最大,不妨让b取最大值255,求得r=97, g=50.把这两个值分别应用到红和绿两个色块上. 绿色不再

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

1.4 浅析亮度与灰度/明度的关系 进入正题之前,先来了解一下灰度/明度. 1.4.1 灰度/明度的概念及其与HSB亮度的异同 在很多场合,灰度与明度的概念完全等价. “灰度”最初来源于摄影领域,在彩色显像技术问世以前,拍摄出来的照片只有黑,白,灰三类颜色,在这种黑白照片里,只有白色.黑色以及灰色的点能完好无损地显示出来,其它颜色将根据其亮度呈现出不同深度的灰色.亮度越大灰色越浅,反之越深.把黑与白色之间分成若干级,称为“灰度等级”.能呈现的灰度等级愈多,画面的层次感就愈丰富. 所以,从彩色转黑

[原创]ActionScript3游戏中的图像编程(连载三十二)

2.2.5 投影距离的模拟 Photoshop投影样式面板的下一个属性是距离,它也存在于Flash的投影滤镜选项中.两者初始值一致,经笔者测试,两者在效果实现和数值意义方面基本一致.Flash不需要对默认参数进行更改. 下一项是扩展,乍一看,在Flash中并没有找到对应项.但仔细观察,在Photoshop投影样式的基础选项里,除了alpha以外,就只剩该属性用了百分比. [原创]ActionScript3游戏中的图像编程(连载三十二),布布扣,bubuko.com