如何在Lua中将-1至1区间的输入值转换为0至1区间
取值范围[-1,1]到[0,1]的转换方法
这是典型的线性区间映射场景,可通过无畸变的线性公式完成转换:
核心转换公式
设输入值为x(取值范围[-1, 1]),转换后输出值为y(取值范围[0, 1]),公式为:y = (x + 1) / 2
公式验证
- 当输入为区间最小值
x=-1时,计算得y=0,匹配输出区间最小值 - 当输入为区间最大值
x=1时,计算得y=1,匹配输出区间最大值 - 当输入为区间中点
x=0时,计算得y=0.5,匹配输出区间中点,数值映射比例均匀无偏差
异常处理
如果实际输入可能超出[-1, 1]的限定范围,可先做边界截断再执行转换,示例代码(Python)如下:
def minus1to1_to_0to1(x): # 先将输入截断到合法取值区间 clamped_x = max(-1.0, min(1.0, x)) return (clamped_x + 1) / 2
逆转换公式
如果需要从[0,1]区间反向映射回[-1,1]区间,可使用公式:x = 2 * y - 1
内容的提问来源于stack exchange,提问作者BananarmyG567
相关产品推荐
相关产品推荐

