Possible Duplicate:
Convert a number range to another range, maintaining ratio
所以我有一个返回 0 到 255 之间的值的函数,我需要将这些值转换为 -255 到 255 之间的值
所以 200 大约是 145,150 大约是 45,依此类推。
我看过Convert a number range to another range, maintaining ratio但是那里的公式不起作用。
我可以使用任何其他公式吗?
public static int ConvertRange(
int originalStart, int originalEnd, // original range
int newStart, int newEnd, // desired range
int value) // value to convert
{
double scale = (double)(newEnd - newStart) / (originalEnd - originalStart);
return (int)(newStart + ((value - originalStart) * scale));
}