我需要通過時間表示一系列元素。出於設計目的,它們中的每一個都應該有一個顏色,以便一目瞭然地識別每一個顏色。重點在於,如果它們之間的顏色差異不被人類所感知,那麼每個元素的顏色都是沒有意義的。Java中顏色的哈希函數
元素唯一固定的屬性是他們的ID。這個ID被認爲是從一個元素到另一個元素的差異,但這不是確定的。
我所尋找的是一個哈希函數,它基於數字ID返回十六進制顏色(網絡格式,例如#f62035),其很多與以前的ID和下一個ID。此外,因爲顯示元素的背景是黑色,所以HEX顏色不能太暗。
例子:
Element ID: 12
Element ID: 13
hash(12) = #f46600
hash(13) = #5aa9aa
您可能能夠調整這個解決方案創建的列表:HTTP: //stackoverflow.com/questions/4246351/creating-random-colour-in-java – 2012-02-13 09:30:23
@JonLin這是我的最後一個選擇,因爲顏色不能保存到數據庫,它應該是不同的執行中相同的顏色,但謝謝;) – eversor 2012-02-13 09:33:25
@eversor你可以通過在構造Random時使用已知的種子(比如12345L)來避免這樣的問題。然後,如果您按照相同的順序執行(完全)相同的操作,則會得到相同的結果。 – 2012-02-13 09:37:44