Une idée que j'ai en tête depuis un moment est de générer des couleurs aussi différentes que possible (dans des limites) pour autant de couleurs que nécessaire. Le tracas supplémentaire étant que si j'ai besoin de quelques couleurs supplémentaires plus tard pour le même graphique (peut-être quelques barres supplémentaires ajoutées), elles doivent s'inscrire dans le même schéma, en gardant les couleurs existantes identiques.
L'idée que j'ai eue est un tour de passe-passe. Imaginez un cercle de couleurs (peut-être chacune étant une teinte différente avec la même saturation et luminosité, bien que vous puissiez définir n'importe quel cercle à travers n'importe quel espace colorimétrique). Au lieu de donner un angle en degrés pour ce cercle, ayez une plage de zéro à 255. En binaire, c'est 00000000 à 11111111. Ajoutez un à un 8 bits 255 et il déborde à zéro, donc il agit naturellement comme une "valeur circulaire" (en termes techniques, l'addition et la soustraction sont modulo 256).
L'astuce consiste à sélectionner la couleur zéro, la couleur une, etc. pour inverser les nombres en bits. Pour ce faire en C, j'utiliserais ...
value = ((value & 0x0F) << 4) | ((value & 0xF0) >> 4);
value = ((value & 0x33) << 2) | ((value & 0xCC) >> 2);
value = ((value & 0x55) << 1) | ((value & 0xAA) >> 1);
Ainsi, la séquence 0, 1, 2, 3, 4 est transformée en 0, 128, 64, 192, 32.
Le fait est que vous avez 256 couleurs distinctes, et les premières sont très largement espacées, les dernières étant moins espacées et remplissant les espaces (64 est à mi-chemin entre 0 et 128, 32 à mi-chemin entre 0 et 64 etc).
N'importe quelle largeur de bit pour un "angle" particulier fonctionnera si vous adaptez le bit-reverse, et bien sûr vous pouvez exécuter plusieurs cycles à la fois pour différents paramètres de la couleur (peut-être que la teinte tourne rapidement, mais la saturation tourne plus lentement).
Cela ne laisse que la question de savoir comment vous mappez vos "angles" à des nombres RVB particuliers ou autre chose, ce que je ne suis pas un expert - oh, et la question de savoir si ActionScript prend en charge le bidouillage du bit.