Una buena manera de generar un buen conjunto de colores es definirlos mediante la saturación fijo y el brillo y variar el matiz.
- Establezca la saturación y el brillo en algo que desee, por ejemplo, 50% de saturación y 90% de brillo.
- Ahora divida los 360 grados de matiz por el número de colores distintos que desee.
- colores escoger de VHS utilizando ese intervalo para el matiz, y el S fijo y V.
Esto le da un buen conjunto de colores, todos los cuales parecen que vinieron de la misma 'set' - todo pastel, o todo intenso, o todo blanco roto, lo que sea. Y es bastante fácil codificar si tiene Color.FromHSV().
Probablemente deje de funcionar una vez que obtenga demasiados colores, sin embargo, serán indistinguibles. Pero probablemente tendrás ese problema de todos modos.
En pseudocódigo:
Sat = 0.5 * 255 //assuming we want range 0-255...
Brightness = 0.9 * 255
NumberOfColours = 7
HueSeparation = 360/7
Colors = []
for (i = 0 ; i< NumberOfColours; i++)
Colors.Add(Color.FromHSV(HueSeparation * i, Sat, Brightness)
o
n = 7
Colors = [Color.FromHSV(x*360/n, 128, 230) for x in range(n)]
(me gustan las listas por comprensión ...)
Acabo de notar que mi ejemplo no ha llegado. Supongo que es porque era una cadena xml ... Bueno, no importó ya que la respuesta funcionó muy bien. – rahkim
@rahkim - pregunta actualizada para arreglar eso y agregar un título más significativo –