69 votes

Générer une couleur aléatoire reconnaissable aux humains

J'essaie de générer aléatoirement une couleur en hexadécimal en javascript.

Cependant, les couleurs générées sont presque indiscernables les unes des autres. Y a-t-il un moyen de l'améliorer?


Voici le code que j'utilise :

 function randomColor(){
   var allowed = "ABCDEF0123456789", S = "#";

   while(S.length < 7){
       S += allowed.charAt(Math.floor((Math.random()*16)+1));
   }
   return S;
}

J'ai entendu parler du modèle de couleur HSL et HSV mais je ne peux pas obtenir cela fonctionne dans mon code. S'il vous plaît aider.

Merci d'avance

10voto

Barry Chapman Points 4119

Essaye ça:

 function getRandomColor() {
    var letters = '0123456789ABCDEF'.split('');
    var color = '#';
    for (var i = 0; i < 6; i++ ) {
        color += letters[Math.round(Math.random() * 15)];
    }
    return color;
}

Voyez-le en action : http://jsfiddle.net/3wjgG/1/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X