我想做一個顏色值的映射。例如,從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