Algorithme pour générer aléatoirement une esthétique de la palette de couleurs
Je suis à la recherche d'un algorithme simple pour générer un grand nombre d'aléatoire, esthétique de couleurs. Donc, pas de folles néon de couleurs, couleurs rappelant les selles, etc.
J'ai trouvé des solutions à ce problème, mais ils s'appuient sur d'autres palettes de couleurs de RVB.
Je voudrais plutôt utiliser directement RVB de la cartographie d'avant en arrière. Ces autres solutions peuvent générer seulement 32 ou si agréable des couleurs aléatoires.
Des idées serait génial.
- Je voudrais faire un site web qui génère une couleur aléatoire à chaque visite. Avoir un "ce de la couleur des roches" / "cette couleur est nul" droit de vote. Puis trier par le ratio de la voix.
- Vous pouvez vérifier et HSV HSL.
- "des couleurs rappelant les matières fécales" je l'aime
- Ce n'est pas un algorithme.
- Je vais ajouter un commentaire puisque la question est fermée. Je n'ai pas essayé, mais il serait intéressant d'essayer une fractale ou la voie procédurale, à l'aide de c'est à dire le Milieu algorithme de Déplacement ou de variantes (lighthouse3d.com/opengl/terrain/index.php?mpd2) ou le Bruit de Perlin, mais au lieu de hauteurs de mélanger les composantes rgb de la couleur.
- Regardez le générateur de palette de couleurs que j'ai construit et c'est le code source: hypejunction.github.io/couleur-assistant Vous pouvez prendre une série de nuances, de déterminer la luminosité des mesures qui en résultent dans les couleurs que vous préférez et de déterminer la saturation à l'aide parabolique formule.
- liées - stackoverflow.com/q/1664140/104380
Vous devez vous connecter pour publier un commentaire.
Vous pourriez moyenne les valeurs RVB des couleurs aléatoires avec ceux d'un constant couleur:
(exemple en Java)
Mélange aléatoire des couleurs avec le blanc (255, 255, 255) crée neutre pastels par l'augmentation de la légèreté tout en conservant la teinte de la couleur d'origine. Ces généré de façon aléatoire, pastels à l'habitude d'aller 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 une constante pastel, ce qui entraîne une teintées à l'ensemble de couleurs neutres. Par exemple, à l'aide d'une lumière bleue crée des couleurs comme celles-ci:
Pour aller plus loin, vous pouvez ajouter des heuristiques pour votre générateur de prendre en compte les couleurs complémentaires ou les niveaux de l'ombrage, mais tout dépend de l'impression que vous voulez atteindre avec vos couleurs aléatoires.
Quelques ressources supplémentaires:
Je voudrais utiliser une roue de couleur et donné une position aléatoire vous pouvez ajouter l'or de l'angle (137,5 degrés)
http://en.wikipedia.org/wiki/Golden_angle
afin d'obtenir des couleurs différentes à chaque fois, qui ne se chevauchent pas.
Réglage de la luminosité de la roue de couleur vous pourriez obtenir aussi différents clair/foncé combinaisons de couleurs.
J'ai trouvé ce post de blog qui explique très bien le problème et la solution à l'aide du 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:
Il est appelé RYB(rouge, jaune, bleu) la méthode et il est décrit dans le présent document:
http://threekings.tk/mirror/ryb_TR.pdf
que "Peinture de Couleurs Inspirée de Compositing".
L'algorithme génère les couleurs et chaque couleur est choisie de manière à maximiser sa distance euclidienne précédemment sélectionnés.
Ici vous pouvez trouver une bonne implémentation en javascript:
http://afriggeri.github.com/RYB/
Mise à JOUR 2:
Sciences Po Medialb viens de sortir un outil qui s'appelle "je veux Teinte" qui génèrent des palettes de couleurs pour les données scientifiques. À l'aide de différents espaces de couleurs et à la production des palettes en utilisant le clustering k-means ou les vecteurs de la force ( répulsion graphiques) Les résultats de ces méthodes sont très bons, ils montrent la théorie et de la mise en œuvre dans leur page web.
http://tools.medialab.sciences-po.fr/iwanthue/index.php
En javascript:
Vu l'idée ici: http://blog.functionalfun.net/2008/07/random-pastel-colour-generator.html
La conversion à une autre palette est de loin supérieur à la façon de le faire. Il y a une raison pour laquelle ils le faire: d'autres palettes sont "perception" - qui est, ils ont mis semblable semblant de couleurs proches, et le réglage d'une variable change la couleur d'une manière prévisible. Rien de cela n'est vrai pour le RVB, où il n'y a pas de relation évidente entre les couleurs qui "vont bien ensemble".
Une réponse qui ne devrait pas être négligée, parce que c'est simple et présente des avantages, est d'échantillonnage de la vie réelle, les photos et les peintures. exemple au hasard autant de pixels que vous souhaitez couleurs aléatoires sur les vignettes de l'art moderne, de photos, de cézanne, van gogh, monnet, photos... l'avantage est que vous pouvez obtenir des couleurs par thème et qu'ils sont organiques couleurs. juste mettre 20 - 30 photos dans un dossier et d'un échantillon aléatoire de façon aléatoire un pic à chaque fois.
De Conversion de VHS valeurs est généralisée à l'algorithme de code pour psychologiquement base de la palette. le hsv est plus facile de sélectionner de manière aléatoire.
En php:
source: https://stackoverflow.com/a/12266311/2875783
J'ai eu du succès en utilisant TriadMixing et CIE94 pour éviter des couleurs similaires. L'image ci-dessous utilise une entrée de couleurs rouge, jaune et blanc. Voir ici.
Ici est rapide et sale de couleur générateur en C# (en utilisant 'RYB de l'approche décrite dans ce l'article). C'est une réécriture de JavaScript.
Utilisation:
Deux premières couleurs ont tendance à être de couleur blanche et d'un abat-jour noir. J'ai souvent les ignorer, comme ceci (à l'aide de Linq):
Mise en œuvre:
David Crow de la méthode dans un R deux-doublure:
Pour pastel, passage supérieur de luminance sombre/clair entiers - ie fnGetRandomColour(120, 250)
Crédits: tous les crédits à
http://paulirish.com/2009/random-hex-color-code-snippets/
stackoverflow.com/questions/12043187/comment-faire-vérifier-si-hex-couleur-est-trop-noir
JavaScript adaptation de David Crow réponse originale à cette question, c'est à dire et Nodejs code spécifique inclus.
L'exécution de la fonction à l'aide de:
vous pourriez les avoir dans une certaine luminosité. le contrôle de la quantité de "neon" des couleurs un peu. par exemple, si la "luminosité"
a été dans un certain élevé lié, il aurait délavé, couleur de la lumière à elle. A l'inverse, si c'était dans un certain faible lié, il serait plus sombre. Cela permettrait d'éliminer toutes folles les nombreuses couleurs et, si vous avez choisi un encadrement très élevé ou très bas, ils sont tous assez proches de blanc ou de noir.
Ça va être dur pour obtenir ce que vous voulez de manière algorithmique - les gens ont été l'étude de la théorie de la couleur pour une longue période, et ils ne connaissent même pas les règles.
Cependant, il y a certains règles que vous pouvez utiliser pour choisir les mauvaises combinaisons de couleurs (c'est à dire, il y a des règles pour les collisions les couleurs, et de choisir des couleurs complémentaires).
Je vous recommande de visiter votre bibliothèque d'art et consulter des livres sur la théorie de la couleur à acquérir une meilleure compréhension de ce qu'est une bonne couleur avant d'essayer de faire une seule - il semble que vous pourriez même ne pas savoir pourquoi certaines combinaisons de travail et d'autres pas.
-Adam
Je recommanderais fortement à l'aide d'une CG HSVtoRGB shader fonction, ils sont géniaux... il vous donne de la couleur naturelle de contrôle comme un peintre, au lieu de contrôle, comme un moniteur crt, qui vous arent sans doute!
C'est une façon de faire 1 valeur flottante. c'est à dire Gris, en 1000 ds de combinaisons de couleurs et de la luminosité et de la saturation etc:
résultat est GÉNIAL COULEUR RANDOMISATION! ce n'est pas naturel, mais il utilise naturels dégradés de couleurs et il semble organique et controlleably irridescent /pastel paramètres.
Pour perlin, vous pouvez utiliser cette fonction, il est rapide zig zag version de perlin.
Ici est quelque chose que j'ai écrit pour un site que j'ai fait. Il va en générer de façon aléatoire un plat couleur d'arrière-plan pour toutes les div avec la classe
.flat-color-gen
. Jquery n'est nécessaire que pour les fins de l'ajout de css à la page; il n'est pas nécessaire pour la partie principale, qui est lagenerateFlatColorWithOrder()
méthode.JsFiddle Lien
Utilisation distinctes-couleurs.
Écrit en javascript.
Il génère une palette de visuellement couleurs distinctes.
distinctes-des couleurs est hautement configurable: