我有一个基色,由基本的[RGB]矩阵表示.
我想根据我的常数创建一个较浅或较暗的颜色,基本上是一个角度(0 - 90°).
我正在寻找一种算法,如何根据该角度创建更亮或更暗的颜色.
较浅颜色的端点为白色,较暗颜色的端点为黑色.
愚蠢的例子:
Green -> Lime -> White
Blue -> Navy -> Black
Run Code Online (Sandbox Code Playgroud)
function [result] = GetColor(baseColor, angleValue)
value = round(angleValue);
endcolor = [1 1 1];
r = linspace(basecolor(1,1), endcolor(1,1), 90);
g = linspace(basecolor(1,2), endcolor(1,2), 90);
b = linspace(basecolor(1,3), endcolor(1,3), 90);
result = [r(value) g(value) b(value)];
end
Run Code Online (Sandbox Code Playgroud)
你想要的颜色最轻/最黑的是什么?定义您的终点[r1 g1 b1],[r2 g2 b2]对应于0和90.然后使用:
colormap = [linspace(r1, r2, 91)' linspace(g1, g2, 91)' linspace(b1, b2, 91)']
Run Code Online (Sandbox Code Playgroud)
定义一组91种颜色,并选择与角度对应的颜色.