Skip to content

Instantly share code, notes, and snippets.

@pmilla1606
Created February 2, 2016 02:19
Show Gist options
  • Save pmilla1606/86f7d0def873a547db23 to your computer and use it in GitHub Desktop.
Save pmilla1606/86f7d0def873a547db23 to your computer and use it in GitHub Desktop.
'use strict';
var rgbArr = [];
var max = 255;
var min = 0;
for (var x=0; x<1000; x++){
rgbArr.push([
_.round(Math.random() * (max - min) + min, 0),
_.round(Math.random() * (max - min) + min, 0),
_.round(Math.random() * (max - min) + min, 0)
]);
}
function rgbToHsl(c){
var r = c[0]/255, g = c[1]/255, b = c[2]/255;
var max = Math.max(r, g, b), min = Math.min(r, g, b);
var h, s, l = (max + min) / 2;
if(max == min){
h = s = 0; // achromatic
}else{
var d = max - min;
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
switch(max){
case r: h = (g - b) / d + (g < b ? 6 : 0); break;
case g: h = (b - r) / d + 2; break;
case b: h = (r - g) / d + 4; break;
}
h /= 6;
}
return new Array(h * 360, s * 100, l * 100);
}
var hslArr=new Array();
for(var i=0;i<rgbArr.length;i++){
//Transforming rgb to hsl
//`hslArr[i][1]` (`i`) is a reference to the rgb color, in order to retrieve it later
hslArr[i]=[rgbToHsl(rgbArr[i]),i];
}
var sortedHslArr=new Array();
//Sorting `hslArr` into `sortedHslArr`
outerloop:
for(var i=0;i<hslArr.length;i++){
for(var j=0;j<sortedHslArr.length;j++){
if(sortedHslArr[j][0][0]>hslArr[i][0][0]){
sortedHslArr.splice(j,0,hslArr[i]);
continue outerloop;
}
}
sortedHslArr.push(hslArr[i]);
}
var sortedRgbArr=new Array();
//Retrieving rgb colors
for(var i=0;i<sortedHslArr.length;i++){
sortedRgbArr[i]=rgbArr[sortedHslArr[i][1]];
}
console.log($)
sortedRgbArr.map((x) => {
$('body').append(`<div class="fick" style=background:rgba(${x},1)>`).css("background",x)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment