![]() |
1
23
当两种颜色之间需要渐变时,最好的解决方案是使用 HSV 表示(色调饱和度值)。 如果您有两种颜色的h s v值,您只需对h、s和v进行线性插值,并且您有很好的颜色(在rgb空间中的插值总是导致“坏”的结果)。 你也发现 here 公式分别从rgb到hsv和从hsv到rgb。 现在,对于四个角的问题,可以对四个H/S/V值进行线性组合,用从E到这四个点A、B、C和D的距离加权。 编辑:与Tekblues相同的方法,但是在hsv空间(在rgb和hsv空间中很容易测试它)。你会看到不同之处。在HSV中,只需将彩色圆柱体旋转一圈,这就是为什么它会产生很好的效果) edit2:如果你喜欢“速度和简单”,你可以使用l1范数,而不是l2范数(欧几里得范数)
所以,如果
哪里
对饱和度和值应用相同的公式。 一旦你有了E点的色调/饱和度/值,你就可以在RGB空间中变换它了。 |
![]() |
2
2
看看这个网站,它提供了一个@thibthib评论的可视化演示,“hsv中的梯度将更令人满意”: http://www.perbang.dk/rgbgradient/ 它是一个渐变创建器,将创建并显示RGB渐变和HSV渐变。 如果您尝试从ffaaaa到aaffaa(浅红色到绿色)的9个步骤,您将通过浅黄色得到一个很好的过渡,并且hsv和rgb看起来类似。 但是,尝试从ff0000到00ff00(粗体红色到绿色)的9个步骤,您将看到rgb-one通过一个美味的绿色棕色过渡。然而,HSV渐变通过粗体黄色过渡。 |
![]() |
3
1
|
![]() |
Malak · 为参数的|省道颤振指定颜色值 2 年前 |
|
KTietjen · 一张ggplot2地图上的两个独立颜色渐变色比例 6 年前 |
![]() |
oudekaas · 基于百分比宽度更改颜色的进度条 6 年前 |
![]() |
Eruditio · 直方图轴散点图中的颜色密度 6 年前 |
![]() |
AAM · 使用引导更改导航栏上文本的颜色 6 年前 |
![]() |
KevinM · 同一页面中的多个SVG问题-消失和颜色更改 6 年前 |
![]() |
Wolk · 交替颜色onClick 6 年前 |