Claudia, parte de nuestro equipo de trabajo, nos hizo el favor de crear este enunciado ya que conoce a la perfección este tema.
Solución:
los map()
La función es un atajo útil y no se arrepentirá del tiempo dedicado a entenderlo.
Esta es su sintaxis:
variable2 = mapa(variable1, min1, max1, min2, max2);
La función establece una proporción entre dos rangos de valores:
mín1 : mín2 = máx1 : máx2
puedes leerlo como: min1 Es para min2 como máx1 Es para máx2.
variable1 historias un valor entre el primer rango mín1~máx1.
variable2 obtiene un valor entre el segundo rango mín2~máx2.
Esta es la ecuación que la función resuelve para el programador:
variable2 = min2+(max2-min2)*((variable1-min1)/(max1-min1))
Este es el código Java detrás de la función Processing map():
static public final float map(float value,
float istart,
float istop,
float ostart,
float ostop)
return ostart + (ostop - ostart) * ((value - istart) / (istop - istart));
Piénsalo de esta manera: divide un rango de 0 a 10 en 100 partes iguales. (obtendrás 0.1 por parte) ahora divide el rango de 0 a 100 en 100 partes iguales (obtendrás 1 por parte) entonces 0.1 en el rango de 0 a 10 es igual a 1 en el rango de 0 a 100. si quieres para encontrar dónde pertenece 5 en el rango de 0 a 10 en el rango de 0 a 100, divida 5 por el tamaño de una parte de 0 a 10 y multiplique ese número por el tamaño de una parte de 0 a 100 y tendrá su respuesta ! (50)
PD Sé que no es así como funciona realmente, pero pensé en dar un ejemplo para aclarar las cosas.
Aquí puedes ver las reseñas y valoraciones de los lectores
Nos encantaría que puedieras difundir este enunciado si te valió la pena.