【问题标题】:Is there a formula to get distinct colors in RGB representation是否有公式可以在 RGB 表示中获得不同的颜色
【发布时间】:2013-10-02 16:37:50
【问题描述】:

一种颜色可以表示为红色、绿色和蓝色的混合。

例如:(255,51,153)=粉红色

有没有什么好的公式可以通过改变一个变量来获得不同的颜色? 例如 (10x,22x,2x^2)。所以当 x=1,2,3,4,.... 时,它会给出不同的颜色,如红色、绿色、青色、蓝色......等。

【问题讨论】:

  • 你如何定义“不同的颜色”?每个 RGB 值都是一种不同的颜色 - 我们只是没有为每个值设置不同的名称。

标签: css math graphics


【解决方案1】:

也许您会对使用 HSL/HSV 颜色更感兴趣。定义饱和度和亮度并调整色调以获得不同的颜色。查看HSL and HSV wiki 了解更多信息。将色调调整 15 到 30 度会产生明显不同的颜色,而不会影响饱和度或亮度。

CSS 中的 hsl 示例如下。

<h1 style="color:hsl(0,50%,100%);">HSL Test</h1> //this will be red

0 处的第一个值是红色,前进 120 度会使您变为绿色,另一个 120 会使您变为蓝色,最后一个 120 将使您回到红色,因为度数系统是基于 360 度的圆圈。所以 0 和 360 只是 60 和 420 相同。接下来的两个值是基于从 0% 到 100% 的百分比来定义该属性的强度。它们很难解释,所以我快速发了一个fiddle that demonstrates this.

因此,要回答您的问题,有一个很好的公式来调整颜色,这取决于您想要更改它的确切程度。在 RGB 世界中,您可以通过统一降低值来使事物变暗,反之则通过提高它们。您可以通过按预期调整各个颜色值来增加不同颜色的存在。但是,如果您尝试循环整个色轮,那么使用 RGB 值很难 (although entirely possible)。真正要吸取的教训是,有多种方法可以定义特定颜色,并且每种方法都有不同的方法来遍历光谱。 HSL 和 HSLA 对许多人来说非常直观,因为它的值并不需要猜测。从色轮上选择一个特定的色调,记住ROYGBIV,因为你想象一个介于 0-359 之间的值。根据您希望颜色的大胆程度定义饱和度,然后根据亮度定义亮度。正如您将在小提琴中看到的那样,在大多数情况下,它比 RGB 更有用。用 javascript 制作整个色谱的子集只需要几行代码。

【讨论】:

  • 不客气,当我了解 HSL 和 HSLA(
【解决方案2】:

有一个类似的问题here

这个 javascript 库可以帮你命名颜色Javascript Lib

图书馆的Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多