Unity Spain
Post Antiguos => General (Antiguo) => Mensaje iniciado por: alonso240 en Diciembre 17, 2015, 10:46:00 AM
Buenas.Tengo un problema a la hora de pasar un valor con rango minimo y maximo a otro valor con otro minimo y maximo. Me explico:Tengo el valor 100 y ese valor puede estar entre 0 y 200.Ahora tengo otro rango que sería -50 y 50, el valor equivalente a 100 en este rango sería 0.¿Hay alguna funcion para generar esto?En Arduino esto lo conseguia con la función "Map (https://www.arduino.cc/en/Reference/Map)", pero aquí no he encontrado ninguna función que me haga lo mismo.Muchas gracias.Saludos.
Averiguas la escala entre los dos máximos y mínimos, de este modo:x0 = 0, x1 = 200
abs(x0) + abs(x1) = 200
y0 = -50, y1 = 50
abs(y0) + abs(y1) = 100donde x0 es el min y x1 el max del primer rango, y0 e y1 el min max del segundo rango.La escala sería la relación:escala = 100 / 200 = 0,5Y luego para calcular cada valor del segundo rango, haces lo siguiente:Para 200 del primer rango:200 * escala = 200 * 0,5 = 100 - abs(y0) = 50Para 100 del primer rango:
100 * escala = 100 * 0,5 = 50 - abs(y0) = 0Para 0 del primer rango:
0 * escala = 0 * 0,5 = 0 - abs(y0) = -50Lo explico así porqué te servirá para cualquier rango lineal.Saludos!