Colorear numero rango 0 .. 1

SicKneSs

Buenas!

Tengo un indicador cuyos valores están comprendidos entre 0 y 1, y quiero darle un color rojo puro o 'vivo' entre más cercano al 0 esté, y verde lo más cercano al 1.

en principio me gustaría hacerlo con javascript.

me gustaría que tomase una gama de colores lo más real posibless, es decir, quiero ver si puedo evitar crear segmentos de valores y a cada uno de ellos ir asignándole un color... (por ejemplo 0 .. 0,1 #F00, 0,1 .. 0,2 #f55....etc.)

es viable ? en principio queria hacerlo con javascript para no saturar el servidor (aplicacion hecha en php).

gracias =).

LOc0

Es viable.

(R, G, B)

(255, 0, 0) es rojo

255, 1, 0
255, 2, 0
...
255,253,0
255,254,0

(255, 255, 0) es amarillo

254,255,0
253,255,0
...
2,255,0
1,255,0

(0, 255, 0) es verde

De esta forma habría 512 511 colores distintos entre el rojo puro y el verde puro. Para sacar el color haces una regla de 3 y según el valor que te de sacas el color. Si el resultado está entre 0 y 255 inclusive, se lo sumas a la componente verde del color rojo. Y si el resultado es mayor de 255, haces res-256 y eso se lo restas a la componente roja del amarillo. Ejemplo:

Tu numerito: 0.34
511*0.34 = 173.74 ~ 174

El color es -> (255, 174, 0)

Tu numerito: 0.76
511*0.76 = 388.36 ~ 388
388-256 = 132

El color es -> (123, 255, 0)

Suerte!

3 1 respuesta
SicKneSs

Qué sencillo y a la vez ingenioso :).

muchas gracias, no le había dedicado mucho tiempo a este detalle.

Un saludo !

1 respuesta
DarkSoldier

#3, #2 es Dios. xDD

2 respuestas
SicKneSs

#4 ya me he dado cuenta no solo ahora, sino a lo largo de muchos años por aqui :P.

me alegra saber que la gente comparte sus conocimientos.

Un saludos !

1 respuesta
LOc0

#4 Exageraaaaaaaado xD (en serio, sin falsa modestia). En este foro hay bastantes "dioses", te lo aseguro ;)

#5 Es un tema de karma. Dar y recibir. Ser agradecido. Aquí he echado muchas horas, pero he aprendido también mucho (simplemente resolviendo dudas, aunque algunos me acusaran de hacerlosdeberes).

Salu2 ;)

3

Usuarios habituales

  • LOc0
  • SicKneSs
  • DarkSoldier