2011-11-18 56 views
1

我喜歡隨機顏色生成算法proposed here by David Crow,但我想知道是否有辦法將結果集中在單一顏色上並調整結果。如何從基礎顏色開始生成一般美觀的線圖顏色範圍(數量未知)?

我的程序將生成跟蹤大量變量的圖形。每個變量屬於7個類別之一。我想生成這些變量的線條顏色,這些變量是清晰的,獨特的,並且色調,飽和度和亮度都在與其類別相關的根顏色的近似範圍內。例如,Red類別的變量在紅色上會有各種清晰可辨的變體。

一種解決方案可能是聲明根顏色,加上色調,飽和度和亮度的上下邊界。然後,我可以從這些範圍內隨機抽取數值,但是在這三個維度內是否有更好的跳躍方式,以便產生的顏色具有相當大的變化量,但仍然留出空間來增長?例如,假設每個管道都是範圍值,每行都是一個迭代:

01 > |---------------|---------------| 
02 > |-------|-------|---------------| 
03 > |-------|-------|-------|-------| 
04 > |---|---|-------|-------|-------| 
05 > |---|---|---|---|-------|-------| 
06 > |---|---|---|---|---|---|-------| 
07 > |---|---|---|---|---|---|---|---| 
08 > |-|-|---|---|---|---|---|---|---| 
09 > |-|-|-|-|---|---|---|---|---|---| 
10 > |-|-|-|-|-|-|---|---|---|---|---| 
11 > |-|-|-|-|-|-|-|-|---|---|---|---| 
12 > |-|-|-|-|-|-|-|-|-|-|---|---|---| 
13 > |-|-|-|-|-|-|-|-|-|-|-|-|---|---| 
14 > |-|-|-|-|-|-|-|-|-|-|-|-|-|-|---| 
15 > |-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-| 

這樣做的最佳方法是什麼?或者這是甚至是我的問題的最佳解決方案?單個圖形可能不會繪製超過4或5個變量,但可以繪製的變量數量可能會達到數百個。

感謝您的幫助。

+0

你的問題,強調我的:「什麼是最好的** **方式來產生一個令人滿意的**線圖顏色範圍......?」就我個人而言,我喜歡從綠色到綠色的顏色。所以最好的方法是使我的範圍儘可能小,我最喜歡的顏色。 :-)開玩笑,我真的不覺得這個問題適合堆棧溢出,因爲它的主觀性和無法回答。 – corsiKa

+0

網絡上有很多顏色方案生成器。我的建議是使用現有的色輪方法來構建三元組或雙重補充方案的變體,具體取決於系列的數量。像[本頁](http://www.worqx.com/color/combinations.htm)可能會有所幫助。 – Verbeia

+0

我認爲這是一個可以接受的算法問題。 「令人愉快」的一點當然比客觀更讓人困惑,也不是一個簡單的話題。但是OP至少在寫作方面付出了一些努力。可能需要一些更詳細的闡述/數據示例,並且可能需要一些獎勵,因爲這需要時間來回答。 (不確定有什麼好的參考答案可以滿足要求。) – mario

回答

3

您可以將此視爲3D中的sphere-packing問題:您希望自己的顏色距離彼此均勻。最好的安排取決於您需要的變體顏色的數量,尋找最佳解決方案並不簡單。然而,一個簡單的機制可能是保存一系列面心立方座標,從(0,0,0)開始並按距離該原點的距離進行排序,然後依次將它們用作「基本」顏色的偏移量(通過參數來縮放,該參數設置他們應該看起來如何不同)。

如果您想要最大限度地關注細節,請注意研究人員在color theory和知覺測量了可見色域的最小可辨色差。您可以使用此數據調整您的顏色偏移矢量(使用矩陣乘法,代替上述簡單縮放),以確保您的顏色差異看起來相同。