首页 > 解决方案 > 将 0 到 1 之间的 a 标准化为给定的最小值和最大值

问题描述

我正在处理操纵杆的音高。

该音高可以在 0(全部向下)和 1(全部向上)之间变化。0.5 的间距意味着操纵杆处于中间位置。

我想找到一个公式,将这个音高“映射”到给定的最小值和最大值。

公式会告诉我

- that a joystick pitch value of 0 would correspond to a given minimum (let's say -20) 
- that a joystick pitch value of 1 would correspond to a given maximum (let's say 20)
- that a joystick pitch value of 0.5 would correspond to 0 (as it's in the middle of minimum and maximum

我停电了,我找不到解决这个谜题的公式。

感谢您的帮助。

标签: c#math

解决方案


(max - min) * value + minwhere valueis in the range[0,1]应将其映射到 range [min,max]。在实践中,可能存在一些问题,具体取决于编程语言†和值,例如,如果minmax是有符号整数类型的最小值和最大值,则您无法max - min在同一类型中计算不溢出。对所有人使用浮点类型可能是最安全的。

† 当我回答时,这个问题没有用任何语言标记,现在它用我不是特别流利的 C# 标记。


推荐阅读