1
由頂答案上this page啓發我寫python程序,以產生N個不同HEX顏色。不同的是,原作者將使用的Math.random()產生飽和度和亮度,而我用三角函數,我可以保證總是會給一個獨特的色調,飽和度&亮度,同時也提供了優勢,我能程序黃色比藍色顯得更暗,允許與白色背景更好的對比&黑色文本(我需要它)。
我實際使用的代碼也通過RGB將HSL轉換爲HEX代碼,以便我可以創建網絡顏色代碼。
我的問題是: -
測試HSL顏色,理想地避免紅相鄰的綠色(共同色盲型)
- 採用這種模式,我怎麼能保證這紅將不會出現在下一個綠色?
- 生成的顏色代碼是很容易的,但我怎麼能輕易看到他們?我現在必須上傳一個很大的文件到一個生成pdf/png/eps的服務器,然後再下載它。
- 我可以測試做到這一點,但沒有任何人有使用HSL模型來生成顏色,其對比度最大,在白色背景上的顏色的頂部黑色文本的經歷嗎?藍色可以使黑色文本真的很難看到,黃色有時很難看到白色...
ps。這實際上並不是我使用的代碼,但一切都從這裏開始。完整的python腳本可用here。
乾杯,
亞歷
>>> class generate_HSL_colours():
... def __init__(self, N, shift=0, degrees=360):
... dict.__init__(self)
... self.N = N
... hues = [ angle for angle in xrange(shift, shift+degrees , degrees/N) ] # Default hues from 0 --> 360
... self.colours = generate_HSL_colours()
... def generate_HSL_colours(self,angles):
... colours = []
... colour = HSLColour()
... for angle in angles:
... cos_value = math.cos(angle * math.pi/360) ## <== in radians. Degrees == cos(angle/2) ; so cos_value goes from 1 to -1, and 0 <= angle < 180.
... ## Could use sin_value too...
... saturation = 90 - (cos_value * 10) ## Saturation from 80 --> 100
... luminance = 50 + (cos_value * 10) ## Lightness from 60 --> 40
... HSLColour.hue = hue
... HSLColour.saturation = saturation
... HSLColour.luminance = luminance
... colours.append(HSLColour)
... return colours
...
... def __iter__(self): ## I put this in to answer a different question (see below).
... for colour in self.colours:
... yield repr(colour.hue, colour.saturation, colour.lightness)
...
__iter__
功能寫成的問題here
請記住,雖然大多數色盲患者都有紅綠色,但還有其他類型的色盲。例如藍黃色盲和全色盲。小心你不會爲一個團隊優化太多,以至於會讓其他團隊變得更糟。 – 2011-01-09 22:32:15
是真實的,但我與紅綠色盲人一起工作,他必須看到結果... – 2011-01-09 22:45:58