Pages

October 1, 2013

Remap value in another range (eg: percentage or rate)

A simple math problem is remapping a value in another context, like a percentage.
So look to this useful Objective-C method.


/** Returns value remapped in a new range.

 @param oldVal Original float value to be remapped.
 @param oldMaxVal Maximum value of the original range.
 @param oldMinVal Minimum value of the original range.
 @param newMaxVal Maximum value of the new range.
 @param newMinVal Minimum value of the new range.
 @return Returns the float value remapped in the new range.

 */
+ (CGFloat)value:(CGFloat)oldVal inRemappedRangeDefinedByOldMax:(CGFloat)oldMaxVal oldMin:(CGFloat)oldMinVal
          newMax:(CGFloat)newMaxVal newMin:(CGFloat)newMinVal {

    CGFloat realRange    = oldMaxVal - oldMinVal;
    CGFloat newRange    = newMaxVal - newMinVal;
    CGFloat newVal        = (((oldVal - oldMinVal) * newRange) / realRange) + newMinVal;
    return newVal;
}



Download the ready-for-use source file (.m) of Remap value in another range (eg: percentage or rate)

No comments:

Post a Comment