503 votes

Générateur de couleur aléatoire en Javascript

Je ne suis pas un expert en Javascript et j’ai besoin d’un peu d’aide.

Avec cette fonction, je veux remplacer la couleur par un générateur de couleur aléatoire.

Quelqu'un peut-il m’aider ?

1177voto

Anatoliy Points 7775

Utilisation à la place de :

307voto

ZPiDER Points 716

Je doute que tout sera plus rapide ou plus court que celui-ci :

Défi !

175voto

Adam Cole Points 361

Voici une autre de prendre sur ce problème.

Mon but était de créer des dynamiques et des couleurs distinctes. Pour assurer les couleurs sont distincts-je éviter d'utiliser un générateur aléatoire et sélectionnez "espacé" les couleurs de l'arc-en-ciel.

C'est parfait pour créer des pop-out marqueurs dans Google Maps qui ont optimales "unicité" (qui est, pas de deux marqueurs ont les mêmes couleurs).

function rainbow(numOfSteps, step) {
    // This function generates vibrant, "evenly spaced" colours (i.e. no clustering). This is ideal for creating easily distinguishable vibrant markers in Google Maps and other apps.
    // Adam Cole, 2011-Sept-14
    // HSV to RBG adapted from: http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript
    var r, g, b;
    var h = step / numOfSteps;
    var i = ~~(h * 6);
    var f = h * 6 - i;
    var q = 1 - f;
    switch(i % 6){
        case 0: r = 1, g = f, b = 0; break;
        case 1: r = q, g = 1, b = 0; break;
        case 2: r = 0, g = 1, b = f; break;
        case 3: r = 0, g = q, b = 1; break;
        case 4: r = f, g = 0, b = 1; break;
        case 5: r = 1, g = 0, b = q; break;
    }
    var c = "#" + ("00" + (~ ~(r * 255)).toString(16)).slice(-2) + ("00" + (~ ~(g * 255)).toString(16)).slice(-2) + ("00" + (~ ~(b * 255)).toString(16)).slice(-2);
    return (c);
}

Si vous souhaitez voir à quoi ça ressemble en action voir http://blog.adamcole.ca/2011/11/simple-javascript-rainbow-color.html.

62voto

Mohsen Points 16856

Qui peut le battre ?

Garantis de fonctionner tout le temps : http://jsbin.com/OjELIfo/2/edit

29voto

Alsciende Points 11508

Pas besoin d’un hachage de lettres hexadécimaux, Javascript peut ce faire par lui-même :

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