2011-08-29 65 views
2

我的問題是,我需要一個算法的圖形輸出一種方法來着色我所擁有的所有對象。所以我寫了這一個位置:着色對象

int[] next_color = {0x70,0x00,0x00}; 
    private int max_co = 0xF0; 
    private int next_c = 0x01; 
    private int step = 0x10; 
    public Color getNextColor(){ 
     next_color[next_c%3]%=max_co; 
     next_color[(next_c++)%3]+=step; 
     return new Color(next_color[0], next_color[1], next_color[2]); 
    } 

在寫這個我在想什麼:我發現,在#707070顏色會顯得偏喜歡黑色,所以它沒有任何意義來使用它們。我還發現只有大於0x10的步纔是(真的很好)被眼所識別。但現在我只有紅色和一些藍色物體(當使用少量物體時) - 因此它看起來有點像廢話。有沒有一種很好的方法來生成一種新顏色,與前一種顏色和下一種顏色可以有很大的區別?

+0

[算法隨機生成一個美觀的調色板]的可能重複(http://stackoverflow.com/questions/43044/algorithm-to-randomly-generate-an-aesthetically-pleasing-color-palette) – Thilo

+0

請注意,某些看起來黑色的實際值取決於很多因素,而不是至少在使用的顯示器上。在這裏#303060仍然*清晰*與黑色區分開來。 –

+3

您需要多少種不同的顏色?如果數字較小,那麼查找並硬編碼一組預定義的可區分顏色可能是更好的方法。 –

回答

1

HSV/HSL彩色幾何圖形應該更容易在這些算法中使用。

+0

啊是的,謝謝你!我只是現在的色調值,並運行在23到23步,從0到360,它的工作真的很好! – reox