Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Comparar valores de dos rangos

Iniciado por alonso240, Diciembre 17, 2015, 10:46:00 AM

Tema anterior - Siguiente tema
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", 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!  

Etiquetas: