trace(NumberUtils.map(150, 0, 300, 0, 100));
Converti o script escrito originalmente em Processing e Arduino para ActionScript 3.0, agora é só usar.
Mais exemplos de uso:
import br.com.bsoares.utils.NumberUtils;
trace(NumberUtils.map(50, 0, 100, 0, 10));
// 5
trace(NumberUtils.map(90, 0, 100, 0, 10));
// 9
trace(NumberUtils.map(90, 100, 0, 0, 10));
// 1
trace(NumberUtils.map(-90, -100, 100, 0, 10));
// 0.5
Classe completa:
/**
* NumberUtils
*
* @author Bruno Soares
* @link http://www.bsoares.com.br
*/
package br.com.bsoares.utils
{
public class NumberUtils
{
public function NumberUtils() { }
/**
* Transfere um valor de um intervalo para outro.
* Versão original escrita em Processing (http://processing.org/reference/map_.html).
*
* @param value Valor a ser transferido
* @param inMin Menor valor do primeiro intervalo
* @param inMax Maior valor do primeiro intervalo
* @param outMin Menor valor do segundo intervalo
* @param outMax Maior valor do segundo intervalo
*
* @return Valor calculado
*/
public static function map(value:Number, inMin:Number, inMax:Number, outMin:Number, outMax:Number):Number
{
return (value - inMin) * (outMax - outMin) / (inMax - inMin) + outMin;
}
}
}
Links relacionados:
Post original: http://blog.bsoares.com.br/technology/regra-de-tres-simplificada-map-do-processing
Processing: http://processing.org/reference/map_.html
Arduino: http://arduino.cc/en/Reference/Map
Regra de Três: http://pt.wikipedia.org/wiki/Regra_de_tr%C3%AAs, http://www.somatematica.com.br/fundam/regra3s.php
Enjoy

Del.icio.us 

0 comentários:
Postar um comentário