Thi*_*hib 23
当两种颜色之间需要渐变时,最佳解决方案是使用HSV表示(色调饱和度值).
如果您有两种颜色的HSV值,则只需对H,S和V进行线性插值,并且颜色很好(RGB空间中的插值总会导致"坏"结果).
您还可以在这里找到分别从RGB到HSV以及从HSV到RGB的公式.
现在,对于四角的问题,您可以对四个H/S/V值进行线性组合,加权距离E到四个点A,B,C和D.
编辑:与tekBlues相同的方法,但在HSV空间(在RGB和HSV空间中测试它很容易.你会看到差异.在HSV中,你只需转动彩色圆柱体,这就是它给出的原因好结果)
编辑2:如果你更喜欢"速度和简单",你可以使用L1范数,而不是L2范数(欧几里德范数)
因此,如果a你的方形的大小和你的点的坐标是A(0,0),B(0,a),C(a,0),D(a,a),那么点E(x,y)的色调可以用:
Hue(E) = ( Hue(B)*y/a + Hue(A)*(1-y/a) ) * (x/a) + ( Hue(D)*y/a + Hue(C)*(1-y/a) ) * (1-x/a)
Run Code Online (Sandbox Code Playgroud)
这里Hue(A)是A点的色调,Hue(B)B的色调,等...
您为饱和度和值应用相同的公式.
获得点E的色相/饱和度/值后,可以在RGB空间中对其进行变换.
| 归档时间: |
|
| 查看次数: |
13012 次 |
| 最近记录: |