c# - 将 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
我停电了,我找不到解决这个谜题的公式。
感谢您的帮助。
解决方案
(max - min) * value + min
where value
is in the range[0,1]
应将其映射到 range [min,max]
。在实践中,可能存在一些问题,具体取决于编程语言†和值,例如,如果min
和max
是有符号整数类型的最小值和最大值,则您无法max - min
在同一类型中计算不溢出。对所有人使用浮点类型可能是最安全的。
† 当我回答时,这个问题没有用任何语言标记,现在它用我不是特别流利的 C# 标记。
推荐阅读
- excel - Excel 2表不同的项目一些相同的项目具有相同的ID,比较行中的值。(动力枢轴)
- java - 如何在 JPA Repository 接口中编写不同的 SQL 子句
- java - 来自 php mysql 的带有 recyclerview、cardview 和 volley 的 Android 完整图像
- excel - 将具有两张工作表的工作簿合并为一个具有相同工作表的工作簿。第二张纸无法正确复印
- c# - 等效于 .Net Core 中的 HttpResponse.StatusDescription 设置状态码描述
- javascript - 如何使用带有正则表达式模式的 Javascript .replace() 限制字符串长度?
- sql - to_number() 函数 --- 'format' 参数
- ionic-framework - 离子选择,离子输入并在第二页检索其值
- javascript - 在 z 轴上将图像夹在孩子和父母之间
- git - 如何识别 Git 中的强制推送?