2016-04-15 56 views
1

之間獲得n種顏色我想在邊界內挑選給定數量的顏色。例如,我給#fff#000作爲邊界,並希望5種顏色之間。如何獲得#fff, color 2, ..., color5, #000,均勻分佈?挑選兩種顏色,並在

我想根據圖表中的動態數量的項目爲圖表工具選擇顏色。只是想知道這是可以用代碼輕鬆完成的,或者可能有一個在線工具已經完成了?否則,我會手動選擇顏色;)

+0

可以例如 COLOR1使用代替六角 RGB:RGB(255,255,255) COLOR2:RGB(0,0,0) 之間的顏色:RGB(50, 50,50),rgb(100,100,100),rgb(150,150,150) – Arif

+1

這有點過分,但我曾經做過這樣的事情:製作一幅高一寬的畫布,將我的漸變應用到它上面,然後得到像素數據。它的效果很好,基本上就是你想要的 – TheCrzyMan

+0

不是很漂亮,實際上很漂亮;) – Ben

回答

1

你可以編寫一個函數來獲取一個間隔,並用間隔和它們的倍數來創建一個數組。

function getInbetweenColors(color1, color2, count) { 
 
    var array = [color1], 
 
     c1 = parseInt(color1.substring(1), 16), 
 
     c2 = parseInt(color2.substring(1), 16), 
 
     interval = (c2 - c1)/count, 
 
     i; 
 

 
    for (i = 1; i < count; i++) {   
 
     array[i] = Math.floor(c1 + i * interval).toString(16); 
 
     while(array[i].length < color1.length-1) { 
 
      array[i]= '0' + array[i]; 
 
     } 
 
     array[i]= '#' + array[i]; 
 
    } 
 
    array[count] = color2; 
 
    return array; 
 
} 
 

 
document.write('<pre>' + JSON.stringify(getInbetweenColors('#fff', '#000', 5), 0, 4) + '</pre>'); 
 
document.write('<pre>' + JSON.stringify(getInbetweenColors('#0391f5', '#27333d', 5), 0, 4) + '</pre>');

+0

這看起來很酷,但是當我嘗試使用我的兩種基色時,並非所有的顏色都是有效的;例如嘗試#0391f5和#27333d。我認爲這是因爲第一種顏色從0開始。 – Ben

+0

這是結果的預期長度。它現在需要第一個參數的長度。 –

+1

很酷,這個作品很好,+ 1A! – Ben

1

chroma.js是一個了不起的圖書館做到這一點! - 檢查出.scale方法here

+0

看起來很整潔! – Ben