主页  范文大全   设计学院   SEO研究   免费资源   网赚大全  QQ资源区    电影下载  在线电影   短信&笑话   校内网   理财知识   站长Blog   访客留言   顶级QQ百科

         声明:本站所有资料素材均是由站长精心整理搜集的,属于原创。我们同意您的转载和复制,但是在转载复制时请保留文字出处。本站资料全部免费使用,无需注册,力求打造华北最强最大的免费资源网站。

通过前几篇教程相信大家对于RGB颜色方面编程应该已经是得心应手了吧?还有一个方面们没有涉及那就是:颜色叠加等这一篇写完我想这个RGB教程也该结束了因为肚子里可就只有这么点东西了

    这个色光叠加部分更多是一种想法连算法都算不上因为这一部分连可以copy了直接用的代码都没有,只有一个swf文件还是为了演示用不过想这个swf里模仿photoshop的取色器大概还是有一点意思的因为这不是本节重点大家还是自己分析源码吧,看过上一节和这一节后应该不难理解

    言归正传们都知道可以用RGB3色值来表示一个颜色但是这并不是说们在实际中看到的眼色就是由3原色光叠加组成的(计算机屏幕自然如此)而是说这种光的颜色和对应的3色光叠加对人眼的刺激是相同也就可以等效起来了因此或许如果对于别的生物,比如猫因为眼睛构造不同们看来屏幕上和实物完全相同猫看起来却不一样这一部分在学科划分上属于色度学和心理学(交叉)大家有兴趣可以自己找资料看一看

    说这些废话是为了分清楚一件事情光叠加和色(比如水彩)叠加红光加上绿光看起来是黄光但是红墨水掺上绿墨水可就差不多是黑们在计算机上所作的都是光叠加内容

    如果是一束ff0000的光和一束00ff00的光线叠加,是什么颜色?不错是黄色:0xffff00.这也种简单的叠加方法其实也适合于更复杂情况

    看到这里大家可能有一个担心如果一种色光强度超过255怎么办?很简单,超过255就把他设置为255可不要进位啊呵呵开个玩笑其实,这个担心是多余的们能证明,实际的情况中永远也不会出现某一色光强度超过255情况最高等于255.

    觉得色光叠加最核心的问题是:如果是一个半透明东西覆盖在另一个物体上颜色怎么计算?

    这可能是很多网友最头疼的问题之一也是和cnmusa讨论这个到问题才开始深入的思考色光叠加问题为简单考虑们先考虑整块色块一个色块的alpha值是30意味着什么?就是说他本身的颜色们可以看到30%有70%(1-30%)底色可以透过它射上来是不是这个样子呢?们来做一下验证看下面这个flash.

    页面:点这儿参观

    源代码(34K):colortest5.zip

    在这个flash,你可以自己选择底色、覆盖层颜色、覆盖层透明度然后看看根据刚才那个原理预测颜色是否和实际颜色相同因为用了很多Math.floor(),肯定有误差但是到目前自己还没发现误差很大情况基本上可以证明关于半透明覆盖的猜想是正确

    那现在们可以得出计算公式了:叠加色r=覆盖色r*覆盖alpha+底色r*(1-覆盖色alpha);绿和蓝也是如此然后再3色组合起来

    在的这些flash文件里,rgb都是自己定义的开始就是分立如果不是这样们如果怎么得到一个诸如0xf456c7这样的颜色代码rgb分立值?很简单:color=0xf456c7;r=(color&0xff0000)>>16;g=(color&0x00ff00)>>8;b=color&0x0000ff;

    如果大家不明白用下面这个也是一样:color = 0x666666;r = Math.floor(color/65536);g = Math.floor((color-65536*r)/256);b = color-65536*r-256*g;

    是不是很简单?:)

    色光叠加写完了的这个《RGB颜色action自定义教程》也就算是可以告一段落了,写的不好占用了大家很多宝贵时间来都读、看甚至是替改错真是非常感谢其中特别感谢desigm、cnmusa两位网友:D希望大家对本教程各种错误、不足提出意见将尽力将它修改完善也将继续就网友提出各种问题在论坛为大家作出解答谢谢大家:D

教程录入:xxYsh.com    责任编辑:admin 
发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
  • 下一篇教程:
  • 推荐链接