2009-09-04 23 views
6

¿Hay alguna manera de iterar sobre los colores? Sé que suena como una pregunta extraña, pero aquí hay una analogía.Iteración de colores

Supongamos que escribe un juego en el que viaja alrededor de la Tierra. Escoges un punto de partida y luego defines una regla que aplicas repetidamente. Por ejemplo: comience en su ubicación actual en la Tierra y luego defina el gran círculo que pasa por su ubicación y los polos norte y sur. Por cada paso, viaje 10 millas a lo largo de este círculo. Cada paso te lleva a un clima similar al anterior (aunque a veces estás muy mojado porque estás en el océano). O viaja 6.000 millas por cada paso. Ahora cada paso es un clima muy diferente.

Ahora imagine un programa que dibuje elementos en la pantalla con colores aleatorios. Tal vez establezca el incremento en un número bajo y cada color sea muy similar al anterior. Tal vez lo coloque en un lugar alto, y cada color sea muy diferente al anterior.

Si usa valores RGB e incrementa R, G y B cada uno por una pequeña cantidad, obtendrá cambios graduales hasta que uno de los valores se ajuste y se produzca un cambio repentino.

Con los valores HSB, la gama de Hues es circular, por lo que no hay discontinuidad. S y B no lo son, y puede encontrarse con un tramo de colores indistinguibles porque S es tan bajo que todos se ven blancos. Mantener S y B al máximo es una posibilidad, aunque deja de lado muchos colores.

Cada ejecución del programa usa solo una pequeña cantidad de colores (10 a 15). Me gustaría elegir valores al azar para que una vez los colores se combinen armoniosamente, una vez que chocan, una vez que son todos pasteles, una vez que son una mezcla de saturado y pastel, etc.

+0

Otra forma de pensar en esto es "pedaleando entre los colores". Donde H, S y B son cada uno de 8 bits, mantenga S y B en 256 e incremente H en 1 o 11 o 61. Pero esto obtendrá solo 256 colores. ¿Hay 256 colores todo lo que hay en el mundo? ¿O hay algunos colores con otros valores de S y B que son diferentes e interesantes de incluir? Si es así, ¿cuáles son, y cómo se desplaza a través de ellos, dejando de lado los millones que se ven como blanco o negro? –

Respuesta

2

Si dibuja un rueda de color, puede obtener colores complementarios seleccionando desde el lado opuesto de la rueda de color.

Aquí hay una página que tiene varias variaciones sobre esa idea y una buena aplicación interactiva para explorarlas.

http://colorschemedesigner.com/

0

Usted puede hacer mejor que 256 colores por pensar en el bicono HSL (ver wikipedia HSV/HSL page). Ya se parece un poco a una esfera y no tomaría demasiado trabajo traducir cada punto de una esfera a un punto en la superficie de la bicona. Ahora el color que camina es el mismo que su planeta caminando. Todavía te estás perdiendo colores desaturados, incluidos los grises. Podría hacer lo mismo con un cubo de color RGB: imagínese caminar por la superficie, elija una dirección constante o muévase al azar.

Probablemente más simple es simplemente modificar su idea RGB original para usar la reflexión en lugar de envolver. Si está en (50, 100, 255) y su incremento de paso es (1, 2, 3), su siguiente color es (51, 102, 252) y su incremento se ajusta a (1, 2, -3) .