Je recherche un algorithme simple pour générer un grand nombre de couleurs aléatoires et esthétiques. Donc pas de couleurs fluo folles, des couleurs qui rappellent les matières fécales, etc.
J'ai trouvé des solutions à ce problème mais elles s'appuient sur des palettes de couleurs alternatives à RVB. Je préfère simplement utiliser le RVB droit que le mappage d'avant en arrière. Ces autres solutions peuvent également générer au maximum 32 couleurs aléatoires agréables.
Toutes les idées seraient géniales.
Réponses:
Vous pouvez faire la moyenne des valeurs RVB de couleurs aléatoires avec celles d'une couleur constante:
(exemple en Java)
Le mélange de couleurs aléatoires avec du blanc (255, 255, 255) crée des pastels neutres en augmentant la luminosité tout en conservant la teinte de la couleur d'origine. Ces pastels générés aléatoirement vont généralement bien ensemble, surtout en grand nombre.
Voici quelques couleurs pastel générées à l'aide de la méthode ci-dessus:
Vous pouvez également mélanger la couleur aléatoire avec un pastel constant, ce qui donne un ensemble teinté de couleurs neutres. Par exemple, l'utilisation d'un bleu clair crée des couleurs comme celles-ci:
En allant plus loin, vous pouvez ajouter des heuristiques à votre générateur qui prennent en compte des couleurs complémentaires ou des niveaux d'ombrage, mais tout dépend de l'impression que vous souhaitez obtenir avec vos couleurs aléatoires.
Quelques ressources supplémentaires:
la source
J'utiliserais une roue chromatique et étant donné une position aléatoire, vous pourriez ajouter l'angle d'or (137,5 degrés)
http://en.wikipedia.org/wiki/Golden_angle
afin d'obtenir à chaque fois des couleurs différentes qui ne se chevauchent pas.
En ajustant la luminosité de la roue chromatique, vous pouvez également obtenir différentes combinaisons de couleurs claires / sombres.
J'ai trouvé ce billet de blog qui explique très bien le problème et la solution en utilisant le nombre d'or.
http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/
MISE À JOUR: Je viens de trouver cette autre approche:
C'est ce qu'on appelle la méthode RYB (rouge, jaune, bleu) et elle est décrite dans cet article:
http://threekings.tk/mirror/ryb_TR.pdf
comme "Compositing couleur inspiré de la peinture".
L'algorithme génère les couleurs et chaque nouvelle couleur est choisie pour maximiser sa distance euclidienne par rapport à celles précédemment sélectionnées.
Ici vous pouvez trouver une bonne implémentation en javascript:
http://afriggeri.github.com/RYB/
MISE À JOUR 2:
Le Sciences Po Medialb vient de sortir un outil appelé "I want Hue" qui génère des palettes de couleurs pour les data scientists. Utiliser différents espaces colorimétriques et générer les palettes en utilisant le clustering k-means ou des vecteurs de force (graphiques de répulsion) Les résultats de ces méthodes sont très bons, ils montrent la théorie et une implémentation dans leur page web.
http://tools.medialab.sciences-po.fr/iwanthue/index.php
la source
En javascript:
J'ai vu l'idée ici: http://blog.functionalfun.net/2008/07/random-pastel-colour-generator.html
la source
La conversion vers une autre palette est un moyen bien supérieur de procéder. Il y a une raison pour laquelle ils le font: d'autres palettes sont «perceptuelles» - c'est-à-dire qu'elles rapprochent les couleurs similaires, et l'ajustement d'une variable change la couleur de manière prévisible. Rien de tout cela n'est vrai pour RGB, où il n'y a pas de relation évidente entre les couleurs qui "vont bien ensemble".
la source
J'ai réussi à utiliser TriadMixing et CIE94 pour éviter des couleurs similaires. L'image suivante utilise les couleurs d'entrée rouge, jaune et blanc. Voyez ici .
la source
Une réponse à ne pas négliger, car elle est simple et présente des avantages, est l'échantillonnage de photos et de peintures réelles. échantillonnez autant de pixels aléatoires que vous voulez de couleurs aléatoires sur les miniatures de photos d'art moderne, cézanne, van gogh, monnet, photos ... l'avantage est que vous pouvez obtenir des couleurs par thème et que ce sont des couleurs organiques. mettez simplement 20 à 30 photos dans un dossier et échantillonnez au hasard une photo aléatoire à chaque fois.
La conversion en valeurs HSV est un algorithme de code répandu pour une palette à base psychologique. hsv est plus facile à randomiser.
la source
En php:
source: https://stackoverflow.com/a/12266311/2875783
la source
Voici un générateur de couleurs rapide et sale en C # (en utilisant «l'approche RYB» décrite dans cet article ). C'est une réécriture de JavaScript .
Utilisation:
Les deux premières couleurs ont tendance à être blanches et une nuance de noir. Je les saute souvent comme ça (en utilisant Linq):
La mise en oeuvre:
la source
La méthode de David Crow dans un R à deux lignes:
la source
Pour le pastel, passez des nombres entiers luma / luma supérieurs - c.-à-d. FnGetRandomColour (120, 250)
Crédits: tous les crédits à http://paulirish.com/2009/random-hex-color-code-snippets/ stackoverflow.com/questions/12043187/how-to-check-if-hex-color-is-too-black
la source
Adaptation JavaScript de la réponse originale de David Crow, IE et code spécifique Nodejs inclus.
Exécutez la fonction en utilisant:
la source
Utilisez des couleurs distinctes .
Écrit en javascript.
Il génère une palette de couleurs visuellement distinctes.
distinct-colors est hautement configurable:
la source
vous pourriez les avoir dans une certaine luminosité. cela contrôlerait un peu la quantité de couleurs "néon". par exemple, si la "luminosité"
était dans une certaine limite élevée, il aurait une couleur claire délavée. Inversement, si elle se situait dans une certaine limite basse, elle serait plus sombre. Cela éliminerait toutes les couleurs folles et remarquables et si vous choisissez une limite vraiment haute ou très basse, elles seraient toutes assez proches du blanc ou du noir.
la source
Il va être difficile d'obtenir ce que vous voulez algorithmiquement - les gens étudient la théorie des couleurs depuis longtemps et ils ne connaissent même pas toutes les règles.
Cependant, il existe certaines règles que vous pouvez utiliser pour éliminer les mauvaises combinaisons de couleurs (c'est-à-dire qu'il existe des règles pour s'affronter les couleurs et choisir des couleurs complémentaires).
Je vous recommande de visiter la section d'art de votre bibliothèque et de consulter des livres sur la théorie des couleurs pour mieux comprendre ce qu'est une bonne couleur avant d'essayer d'en créer une - il semble que vous ne sachiez même pas pourquoi certaines combinaisons fonctionnent et d'autres ne fonctionnent pas. t.
-Adam
la source
Je recommande fortement d'utiliser une fonction de shader CG HSVtoRGB, ils sont géniaux ... cela vous donne un contrôle des couleurs naturel comme un peintre au lieu d'un contrôle comme un moniteur CRT, ce que vous n'êtes probablement pas!
C'est une façon de faire 1 valeur flottante. c'est-à-dire gris, en 1000 ds de combinaisons de couleurs et de luminosité et de saturation, etc.:
le résultat est UNE RANDOMISATION DE COULEUR IMPRESSIONNANTE! ce n'est pas naturel, mais il utilise des dégradés de couleurs naturelles et il a l'air de paramètres organiques et contrôlables irisés / pastels.
Pour perlin, vous pouvez utiliser cette fonction, c'est une version rapide en zig zag de perlin.
la source
Voici quelque chose que j'ai écrit pour un site que j'ai fait. Il générera automatiquement une couleur de fond plate aléatoire pour toute div avec la classe
.flat-color-gen
. Jquery n'est requis que pour ajouter du CSS à la page; ce n'est pas nécessaire pour la partie principale de cela, qui est lagenerateFlatColorWithOrder()
méthode.Lien JsFiddle
la source