关于彩虹字体
红->绿
255.0.0 -> 255.++.0 -> 255.255.0 -> --.255.0 -> 0.255.0
绿->篮
0.255.0 -> 0.255.++ -> 0.255.255 -> 0.--.255 -> 0.0.255
篮->红
0.0.255 -> ++.0.255 -> 255.0.255 -> 255.0.-- -> 255.0.0
综合:
255.0.0 -> 255.++.0 -> 255.255.0 -> --.255.0 -> 0.255.0 -> 0.255.++ -> 0.255.255 -> 0.--.255 -> 0.0.255 -> ++.0.255 -> 255.0.255 -> 255.0.-- -> 255.0.0 (循环)
中间的节点项:
255.0.0
255.255.0
0.255.0
0.255.255
0.0.255
255.0.255
255.0.0
所得的变化段为6段渐变.所以字符串分为6段等长字符
每段颜色渐变step为: (s.length/6)/255
找到规律.算法就很简单了..
扩展:
颜色开始值为随机颜色,判断颜色所属区间,然后渐变算法处理,到下一个循环为止..
附: 网上很多流传关于rainbow.htc的彩虹字体,不过只能说是彩色字体,而不是彩虹字体,看起来并不好看
关于渐变字体
相对而言渐变字体的算法简单多了
确定红绿篮的一种基准颜色 *.255.* 或 128.*.* 或 *.*.200
渐变颜色变化过程:
*.255.* -> ++.255.++ -> 255.255.255 渐变颜色点淡 (为了防止颜色变为白色(底色),可以设置一个边界)
*.255.* -> --.--.-- -> 0.0.0 渐变颜色加深 (为了防止颜色变为黑色,也可以设置一个上界)
算法实现,后面补上
实现效果
彩虹字体
彩虹我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我
渐变字体
我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我