颜色渐变的RGB计算

均匀渐变

渐变(Gradient)是美学中一条重要的形式美法则,与其相对应的是突变。形状、大小、位置、方向、色彩等视觉因素都可以进行渐变。在色彩中,色相、明度、纯度也都可以产生渐变效果,并会表现出具有丰富层次的美感。本文主要讲述两种颜色RGB数值的渐变算法。

已知:A=50,B=200,A、B之间平均分成3份(Step=3),求每份的数值(StepN)分别是多少。

公式:Gradient = A + (B-A) / Step * N

[注]:编程时为了提高效率避免浮点运算,往往把除法放在最后面,这样公式就成了:Gradient = A + (B-A) * N / Step

Step=3时,根据公式可以求出Step1=A+(A-B)/3*1=50+(200-50)/3=100,Step2=A+(A-B)/3*2=50+(200-50)/3*2=150。这就是均匀渐变的算法原理了,很简单,小学知识。

两种颜色的渐变就是对两种颜色的RGB通道分别进行这样的计算,例如两种颜色分别是RGB(200,50,0)和RGB(50,200,0),用上述公式进行计算就是:

RStep1=RA=RA+(BA-RA)/Step*N=200+(50-200)/3*1=200-50=150

GStep1=GA=GA+(GA-GA)/Step*N=50+(200-50)/3*1=50+50=100

BStep1=BA=BA+(BA-BA)/Step*N=0

因此RGBStep1=(150,100,0),同样的方法可以求出RGBStep2=(100,150,0)。

时间: 2024-11-06 07:36:32

颜色渐变的RGB计算的相关文章

iOS 动画绘制线条颜色渐变的折线图

效果图 .................... 概述 现状 折线图的应用比较广泛,为了增强用户体验,很多应用中都嵌入了折线图.折线图可以更加直观的表示数据的变化.网络上有很多绘制折线图的demo,有的也使用了动画,但是线条颜色渐变的折线图的demo少之又少,甚至可以说没有.该Blog阐述了动画绘制线条颜色渐变的折线图的实现方案,以及折线图线条颜色渐变的实现原理,并附以完整的示例. 成果 本人已将折线图封装到了一个UIView子类中,并提供了相应的接口.该自定义折线图视图,基本上可以适用于大部分

CSS 实现背景色渐变和文字颜色渐变

1. 背景色渐变 A . linear-gradient:用线性渐变创建图像. 语法:<linear-gradient> = linear-gradient([ [ <angle> | to <side-or-corner> ] ,]? <color-stop>[, <color-stop>]+) 下述值用来表示渐变的方向,可以使用角度或者关键字来设置: <angle>:用角度值指定渐变的方向(或角度). to left: 设置渐变为

code实现透明度渐变和颜色渐变的view

最近用code写了些view上的渐变效果,使得app的UI特效不必全部依赖美工出的图片. 效果如下: 主要用到了Layer上的渐变层,核心代码如下,关于CALaer的使用可参考 //Transparent Gradient Layer - (void) insertTransparentGradient { UIColor *colorOne = [UIColor colorWithRed:(33/255.0) green:(33/255.0) blue:(33/255.0) alpha:0.0

鼠标在字体上移动,字体颜色渐变

这里的传参方法跟本博客中javascript"鼠标移入移出背景色渐变"中的传参方式相同,我贴的代码是全部都有的,大家可以复制过去直接看效果,有更好的建议的望留言…… <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>鼠标在字体上移入移出字体颜色渐变</title> <style&g

自定义控件之圆形颜色渐变进度条--SweepGradient

前几天在群里面有人找圆形可颜色渐变进度条,其中主要的知识点是SweepGradient: mSweepGradient = new SweepGradient(240, 360, new int[] { Color.CYAN, Color.DKGRAY, Color.GRAY, Color.LTGRAY, Color.MAGENTA, Color.GREEN, Color.TRANSPARENT, Color.BLUE }, null); 如上:第三个参数为渐变颜色内容,前两个是坐标信息,240

CAGradientLayer颜色渐变器

使用CAGradientLayer可以实现颜色的渐变, 我们先看下头文件 @interface CAGradientLayer : CALayer @property(nullable, copy) NSArray *colors;//颜色渐变的数组 @property(nullable, copy) NSArray<NSNumber *> *locations;//渐变颜色的区间分布,locations的数组长度和color一致,默认是nil,会平均分布 @property CGPoint

颜色渐变CSS

颜色渐变CSS IE系列 filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#FF0000',endColorStr='#F9F900',gradientType='0'); 参数:startColorStr起始颜色 endColorStr结束颜色 gradientType为0时代表垂直,为1时代表水平 Firefox background: -moz-linear-gradient(top, #FF0000, #

CSS3颜色渐变模式总结

                                               CSS3颜色渐变模式总结     1.线性渐变:linear-gradient 语法:<linear-gradient> = linear-gradient([ [ <angle> | to <side-or-corner] ,]? <color-start>[, <color-end>]+) <side-or-corner> = [left |

添加颜色渐变的UIView

UIView颜色渐变,可以直接使用CAGradientLayer或者重写drawRect:都可以实现渐变的效果,其中本质都是一样的. 比较简单的渐变只要设置过渡的颜色,和开始的位置,若不设置位置,会默认平均分. 1.使用 CAGradientLayer //gradientLayer 1 //gradientLayer 2 func addGradientViewLayer(){ 3 let contentView = UIView(frame: CGRectMake(100, 100, 100