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

4.1.4 田忌赛马中矩阵乘法的体现

下面再来看看孙膑对矩阵都做了哪些操作:

————

在这一变换中,马匹的总属性没有发生任何更改,孙膑不需要换马,也无需提升任何一匹马的档次即可反败为胜:

该变换一举打破了数乘与加减法的常规,运用矩阵布局的思想,充分调度了矩阵内的各个元素,奠定了比赛的胜局。孙膑的足智多谋让齐威王心悦诚服,赛后不久便成为齐威王手下的一名得力军师。

调整位置无法用四则运算来表示,但可以把结果中的数值都看作包含了系数1:

我们再假设,如果齐威王也深谙矩阵之道,及时调整阵型,将上下等马的出场顺序对调一下,他就能再下一城,守住胜局,而田忌则仍以失败告终。

齐威王的矩阵变换可表示如下:

从孙膑和齐威王的变换可以看出,布阵的方法存在很大的灵活性,a,b,c的位置应根据战况的不同及对手的实际布局进行有针对性的调整,它们的最终位置出现在哪一行都有可能。所以,只对单一元素进行运算是不可能把以上布阵方法都表达出来。

我们将a,b,c写入到孙膑结果矩阵中的每一行,没有在对应行出现的元素附上系数0:

——

而齐威王的调整策略则可表示如下:

——

转换过程都出现了3*3=9个系数,我把它们抽取出来并排列成矩阵:

孙膑的布局矩阵:

齐威王的布局矩阵:

以孙膑为例,这一运算过程可表示如下:

我们把上面式子中的&连接符改为×,便可抽象出矩阵的另一种运算——乘法:

如果第一个矩阵包含多行,则每行都进行同样的运算:

与加减法相类似,矩阵乘法也可以推广到m行n列,但是,矩阵乘法要求第一个矩阵的行数与第二个矩阵的列数相等,否则无法运算。因为矩阵的乘法需要将第一个矩阵中第n行的数与第二个矩阵中第n列的数进行相乘(图 4.1),如果数量不匹配,运算将会失效。

图 4.1 图解矩阵的乘法运算

有了矩阵这一工具以后,我们就可以表达任意的马匹布阵转换了。比如,想要将三匹马布阵成【中,下,上】,则矩阵的变换过程可表示为:

您可以这样理解,加入您想把第3匹马安排到第2位,您就把变换矩阵第3行第2列的数值设置为1,而该列的其他元素都设置为0。

时间: 2024-10-23 13:06:43

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