我想做一个颜色值的映射。例如,从0到25的值将表示蓝色的变化,从较亮到较暗。 我从来没有这样做过,所以我想就基础知识提供一些建议和解释。 感谢您的帮助。将双精度值映射到颜色
0
A
回答
0
那么在C++中,这样做
vector<Color> myvector;
for(int i = 0; i < 25; i++){
myvector.push_bacK(Color(0,0,(int)(round(double(255/(i+1))));
}
和您的载体将含有蓝色色调......
0
如果您正在使用RGB,该值越高 - >打火机的颜色会是
(255,255,255)是白色
(0,0,0)是黑色
由于255是最大的参数,所以可以将其除以想要的蓝色变体的数量
注意:(R,G,B)是整数参数,我建议找一个好的分母17,它给出15个不同的变化仅限蓝色
6
第一步是为固定点选择颜色,如0表示白色,25表示蓝色,如你所建议的。然后你可以添加绿色50,红色75等等。
每个固定点映射到一个R G B值。如果我们使用0和1之间漂浮在数学更容易:
Value Red Green Blue
0 0.33 0.33 0.34
25 0.00 0.00 1.00
50 0.00 1.00 0.00
如果保留R + G + B常数这样的,颜色的强度将是恒定的(见:http://en.wikipedia.org/wiki/HSL_and_HSV)
现在你建立你们之间的两种固定颜色。您可以获得范围低端和高端的RGB值。作为一个例子,让我们以15的值为例。 15是0和25之间,那么:
rLow = 0.33f; gLow = 0.33f; bLow = 0.34f;
rHigh = 0.0f; gHigh = 0.0f; bHigh = 0.0f;
float prop = (x - vLow)/(vHigh - vLow);
[e.g. = (15 - 0)/(25 - 0) = 0.6 ]
然后为你做的每一种颜色:
float rVal = rLow + prop * (rHigh - rLow);
[e.g. = 0.33 + 0.6 * (0.00 - 0.33) = 0.132 ]
同样你解读绿色和蓝色:
float gVal = gLow + prop * (gHigh - gLow);
float bVal = bLow + prop * (bHigh - bLow);
蓝色的例子看起来像:
[e.g. = 0.34 + 0.6 * (1.00 - 0.34) = 0.736 ]
然后你可以创建Java Color对象,如下所示:
Col col = new Color(rVal,gVal,bVal);
并使用它如何你的愿望。 :-)
2
这是我的解决方案on gisthub用于双色到蓝色渐变的颜色映射。
结果示例:值0 - 100 with stepcount 1
相关问题
- 1. 将值映射到颜色映射颜色
- 2. 将数值列表映射为颜色
- 3. Pylab:将标签映射到颜色
- 4. 如何将数字映射到颜色?
- 5. matplotlib颜色映射 - 预定义映射到值?
- 6. 如何使用ObjectMapper将[颜色]映射到[字符串:颜色]
- 7. 双精度值
- 8. 如何根据双精度值确定颜色阴影?
- 9. 在python中将整型值映射到颜色的范围
- 10. Matplotlib颜色映射:最大颜色数
- 11. 将DBNULL值解析为双精度值
- 12. 颜色空间映射YCbCr到RGB
- 13. 转换gnuplot颜色映射到matplotlib
- 14. 堆叠颜色映射
- 15. OPEN GL颜色映射
- 16. jzy3d更改颜色映射
- 17. matlab中的颜色映射
- 18. 的Paraview颜色映射
- 19. 低精度分类颜色
- 20. 使用CImg颜色映射灰度图时遇到问题
- 21. 将RGB /十六进制颜色代码映射到一般颜色类别
- 22. 对包含双精度和字符串值的哈希映射进行排序
- 23. 双精度浮点值传递双精度时
- 24. 映射中的值[0.0-1.0]到颜色增益
- 25. 双精度值返回0
- 26. 增加双精度值
- 27. J2ME双精度值问题
- 28. 有序尺度category10将一切都映射到相同的颜色
- 29. 实体框架将float数据类型映射为双精度型
- 30. 将双精度加载到arrayList中
尝试第1项。然后回来 – Neal 2011-03-31 16:55:22
首先查看[javadoc]中的Color对象(http://download.oracle.com/javase/6/docs/api/java/awt/Color。HTML) – Jeremy 2011-03-31 17:05:43
一个简单的map.put(0,新的颜色(/ * *无论代码为蓝色阴影你需要* /)应该做的伎俩,不是? – Soronthar 2011-03-31 18:40:40