【发布时间】:2013-07-06 19:40:09
【问题描述】:
我正在尝试编写函数,它可以根据给定值生成两种颜色之间的颜色。一个例子会更好地解释它..
输入..
X : 1
Y : 0.5
Z : 0
用户给出任意一组color:value 对,然后输入一个数字(比如 0.75)。然后我必须生成按比例混合 Y 和 Z 的颜色(基于它们的值和输入值)。我正在考虑以下方法。
- 查找值周围的颜色,对于 0.75,它将是 0.5 和 1。
- 根据值以某种方式混合这两种颜色并生成新颜色。
我完全迷失了,关于如何生成颜色,是否有任何库。
更新: 这是我正在进行的一个更大项目的一部分。假设我们有..
1 : X
0 : Y
和用户输入,0.25
我想要点东西..
(X*0.25 + Y*0.75)
因为它更接近 Y,这就是为什么比例更高。如果用户输入,0.5..输出应该是
(X*0.5 + Y*0.5)
等等。我不知道如何用 RGB 颜色做到这一点。
P.S:这些问题不是特定于语言的,但我是用 Java 做的。
【问题讨论】:
-
你能再分享一些示例输入和相应的输出吗?
-
我不认为混合会是独一无二的。 0.25 = 1/4 红色 + 3/4 绿色或 1/2 * 黄色 + 1/2 绿色。尝试将权重按比例设置为三位数,其中 abc,其中 a 是红色,b 绿色和 c 黄色的权重?
-
添加了更多细节。
-
我认为您需要阅读一般的加色混合,知道对于给定任务可能更容易使用的其他颜色空间(例如.HSB/HSV)。
java.awt.Color值得一看。 -
Red : 1 Green : 0 Yellow : 0.5你知道颜色是 RGB 而不是 RGY,对吧?顺便说一句 - 我会使用快速的'n'dirty方法将渐变绘制到BufferedImage,然后从图像中获取中间颜色。