我想做一个颜色值的映射。例如,从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. 将数值列表映射为颜色
- 4. 如何将数字映射到颜色?
- 5. Pylab:将标签映射到颜色
- 6. matplotlib颜色映射 - 预定义映射到值?
- 7. 如何使用ObjectMapper将[颜色]映射到[字符串:颜色]
- 8. Struts2:包含字符串和双精度值的映射对于双精度值返回null
- 9. 双精度值
- 10. 如何根据双精度值确定颜色阴影?
- 11. 在python中将整型值映射到颜色的范围
- 12. 将颜色映射到热图中的值(pheatmap)
- 13. Matplotlib颜色映射:最大颜色数
- 14. 将角色映射到静态值
- 15. 从ggplot检索颜色 - 值映射
- 16. 颜色映射值的范围
- 17. .NET:双精度值
- 18. TryParse双精度值
- 19. 将DBNULL值解析为双精度值
- 20. OPEN GL颜色映射
- 21. 的Paraview颜色映射
- 22. matlab中的颜色映射
- 23. jzy3d更改颜色映射
- 24. python中的颜色映射
- 25. 堆叠颜色映射
- 26. Cubism.js - 范围到颜色映射
- 27. 转换gnuplot颜色映射到matplotlib
- 28. 颜色空间映射YCbCr到RGB
- 29. 低精度分类颜色
- 30. 将双精度值添加到双数组时出错
尝试第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