Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Incrementation de couleurs [ Windows / Formulaire / Winforms / Controls ] (olibara)

samedi 6 septembre 2008 à 10:21:05 | Incrementation de couleurs

olibara

Bonjour

J'aimeras savoir s'il existe une methode ou si quelqu'un a une idée pour produire automatiquement une palette de couleur distincte
Je m'explique j'ai une collection d'element en nombre restrinct (< 20) et généralement < 10

J'aimerais a chaque element associer automatiquement une couleur sufisement distincte

Solution triviale : un tableau de couleur. C'est pas tres souple et forcément limité

Solution possible : Attribuer les valeurs RGB dans une boucle mais je ne maitrise pas sufisement la manipulation des couleurs pour trouver la formule magique pouvant me donner a chaque step des R G B produisant une couleur sufisement distincte de la precedente, sans faire n'importe quoi !

Mais peut-etre il y a t-il d'autres idées ou suggestions ?

samedi 6 septembre 2008 à 17:24:37 | Re : Incrementation de couleurs

coq

Administrateur CodeS-SourceS
Salut,

Question intéressante ça, mais je n'ai pas de réponse toute faite sous la main.
Cependant une bonne piste, à mon avis, est de regarder du côté des normes d'accessiblité qui doivent probablement parler d'algorithme de vérification de contrastes de couleurs afin de rendre une interface graphique utilisable par des personnes présentant des difficultés visuelles.
Par contre je ne suis pas certains que ta piste de la génération automatique soit la meilleure : dans le contexte une couleur valide en terme de contraste peut s'avérer être particulièrement moche. Tu risques donc de devoir faire une petite validation manuelle quoi qu'il arrive.



/*
coq
MVP Visual C#
CoqBlog
*/

samedi 6 septembre 2008 à 17:58:19 | Re : Incrementation de couleurs

olibara

Merci Coq

Je te suis tres bien

Mais l'ajustement manuel je compte de toute façon le proposer
L'idée c'est de proposer un "preset"  sur un echantion de +/- 5 a 15 valeurs
Ensuite l'utilisateur fait ce qu'il veut !

samedi 6 septembre 2008 à 19:06:28 | Re : Incrementation de couleurs

coq

Administrateur CodeS-SourceS
Ok, donc c'est probablement une piste à suivre.
Il me semble que les papiers du W3C sur l'accessibilité proposent un moyen de vérifier la différence de contraste entre la couleur de foreground et celle de background.
Ta problémentique est un peu plus compliquée (il faut sans doute que tu fasses les comparaisons pour toutes les couleurs entres elles) mais c'est probablement un bon début.
A toi de voir si le jeu en vaut la chandelle par rapport à la liste définie en dur.


/*
coq
MVP Visual C#
CoqBlog
*/

samedi 6 septembre 2008 à 19:33:32 | Re : Incrementation de couleurs

olibara

Merci,

En tout cas ca vaut la peine d'aller voir les notes du W3C, histoire d'élargir sa culture et pecher des idées...

Bon ....
J'ai été voir ....   Apres un veritable jeu de piste, je suis arrivé sur le lien le plus effectif

[ Lien ]

Malheureusement pas de vision algorithmique de la chose
Je pense que je vais finir par essayer de definir une table de 20 couleurs
Si l'utilisateur prends plus, je lui propose les dernieres en niveau de Gris (R=G=B)
S'il prends moins, je fais un pas de selection dans le tableau

dimanche 7 septembre 2008 à 19:27:08 | Re : Incrementation de couleurs

niky

Membre Club
Salut,

Une solution intéressante pour faire ça est de changer l'espace de couleur.
Une couleur peut être définie dans plusieurs espaces. Le plus connu pour les développeurs est l'espace RVB (rouge vert bleu) mais tu peux basculer par exemple en TSV (teinte saturation valeur).

Le TSV est intéressant dans sens où la teinte définie la couleur sur le cercle chromatique (la valeur de T est un angle variant de 0 à 360°). S correspond à la pureté de la couleur (1 = couleur pétante, 0 = gris). Quand au V, il s'agit de la luminosité de la couleur (1 = clair, 0 = sombre).

De là, tu peux facilement faire un algorithme qui va de 0 à 360 avec un pas de 360 / n où n est le nombre de couleurs à générer (quand à S et V, la valeur 1 est pas mal).
Tu garantis de cette manière que les couleurs sont les plus distantes les unes des autres.

Tu trouveras sur Wikipédia (http://fr.wikipedia.org/wiki/Teinte_Saturation_Valeur) comment passer du TSV au RVB. Si tu cherches directement une fonction codée, ce site doit forcément en mettre une à dispo.



dimanche 7 septembre 2008 à 23:19:24 | Re : Incrementation de couleurs

olibara

Salut Niky

Merci pour ta suggestion et surtout pour ton explication concernant   TSV j'imagine que TSV est la traduction de  HSL que j'ai vu mainte fois sans chercher a comprendre mais ton explication m'éclaire

Mais ci c'est ca il me semble que HSL en informatique on fait varier chaque element entre 0 et 255 et toi tu parle de 0 et 1 tu considere que 1 c'est 255 en logique ?



 


lundi 8 septembre 2008 à 08:16:49 | Re : Incrementation de couleurs

ikaer

Hello,

J'ai du faire le même genre de truc pour un graphique (changement de couleur automatique à l'ajout de courbe, un peu style Excel). J'ai pas trouvé vraiment de méthode, alors je me suis fait une méthode static qui recupére la place de l'élément à colorer dans la liste, et lui associe une couleur que j'ai définit dans ma classe static. Je ne sais pas si ça correspond exactement à ce que tu veux. Pour pouvoir ajouter autant de courbes que je voulais et ne pas fixer toutes les couleurs des 100 premières courbes (-.-) j'utilise le dernier chiffre de l'index de l'élément pour associer une couleur (soit 10 couleurs).

csharpement

lundi 8 septembre 2008 à 08:57:25 | Re : Incrementation de couleurs

olibara

Si je te comprends bien, toi tu part d'un tableu de couleur prénéfini que indexe

Ce qui m'intéresse plutot c'est une methode algoritique pour gener n couleurs les plus distantes possible les unes des autres

La methode de niky me semble une tres bonne piste

 

Je viens de penser aussi a ceci

Prenons le nombre de couleurs  mettons 27 (pour faire simple). Je prends la racine cubique : 3

255 / 3 = 85 Sera le pas a appliquer a chacun des éléments R,G,B

Soit 85,170,255

 


lundi 8 septembre 2008 à 20:26:40 | Re : Incrementation de couleurs

niky

Membre Club
Je me permet de répondre sur le TSL.
Il s'agit bien de la traduction française du HSL (Hue Saturation Lightness).

Pour ce qui est de l'échelle des valeurs mettre
- T entre [0 ; 360[, provient du fait que T est un angle sur le cercle chromatique (par habitude, cette valeur est indiqué en degrés plutôt qu'en radians)... mais tu imagines bien que la nature ne se limite pas à 360 teintes différentes, donc la teinte 43,798° est admise...
- C'est là qu'on en arrive au S et L qui sont dans le même cas. La nature ne se limite pas à 256 variantes. C'est pourquoi ces valeurs sont généralement codées entre [0 ; 1] avec l'infinité de possibilités que cela offre.

Pourquoi coder tout ça sur des flottants ? Parce que si tu fais une conversion RVB -> TSL -> RVB et que tu n'utilises que des entiers, tu vas obtenir des erreurs d'arrondis conséquentes.


A+





1 2

Cette discussion est classé dans : couleur, couleurs, automatiquement, incrementation, sufisement


Répondre à ce message

Sujets en rapport avec ce message

afficher en couleur avec cout<< [ par fred23 ] Bonjour,Je viens de decouvrir que coutQuelle est la librairie de ratachement.?Quels sont les code couleurs ce ce cout<<'033' et comment choisir ces co couleur pixel et format TIFF [ par kyfranBibax ] Coucou, alors là, j'ai un gros problème.... But du jeu : convertir mon image TIFF en 128 couleurs. Moyen :     1)Dans Image.Save, il existe bien u Combobox + couleurs [ par emmanuel9 ] Bonjour à tous, Quelqun aurait t'il trouvé un moyen simple de mettre le texte en couleur dans un combobox, par exemple une couleur differente par it Couleurs [ par Moomoon07 ] Est ce que quelqu'un peut m'expliquer comment manipuler les couleurs ?!J'ai compris qu'il y avait plusieurs façons : Color.Red, Color.Green ...des cou Couleur de sélection d'une ListBox [ par Captain_Bomber ] Bonjour à tous et bonne année!!J'ai un petit (mais génant) problème :J'utilise une ListBox pour afficher des messages successifs.Afin que la ScrollBar Propriétés et Control personnalisé [ par Claudebf ] Salut à tous------------ Je rencontre deux problèmes liés lors de la conception d'un control personnalisé. Le premier est celui-ci : J'ai des couleurs Redirection de Console.WriteLine [ par scoubidou944 ] bonjour,comme mon ami Google  semble vexé aujourd'hui, je viens chercher refuge ici.Si dans un même projet en mode console, on veut hooker les appels Changer la propriété BackColor d'un controle avec une couleur perso [ par Makia ] Bonjour à tous et voici mon souci ^^J'ai une application qui récupère en permanence la couleur que pointe la souris ( il en ressort un objet de type C Webbrowser + click sur un bouton automatiquement [ par espadon2 ] Bonjour a tous et a toutes.Voila mon soucis  :je dois recuperer des informations sur plusieurs pages web protégées par  login/passwordJusque ici  j' u


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,435 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.