lerp函数的反转的通用名称是什么?

Eri*_*pen 6 terminology function naming-conventions inverse linear-interpolation

函数lerp()是编程语言中的常用函数:

lerp(a, b, t) = a + t * (b - a).
Run Code Online (Sandbox Code Playgroud)

现在对于很多场景,我有一个反函数:

fraction(x, a, b) = (x - a) / (b - a).
Run Code Online (Sandbox Code Playgroud)

这个功能是这样构建的

lerp(a, b, fraction(x, a, b)) == x
Run Code Online (Sandbox Code Playgroud)

fraction(lerp(a, b, t), a, b) == t
Run Code Online (Sandbox Code Playgroud)

但是我对名称"分数"不满意.这个功能有一个共同的名称吗?

Sli*_*son 11

GLSL

GLSL 的内置函数包括:

mix(), 就像你的lerp()函数一样。
smoothstep(),它的工作原理就像您的逆 lerp 函数结合 Hermite 平滑和x = clamp(x, 0.0, 1.0).

您可以考虑实现的名称linearstep()

统一引擎

Unity 的 API 包括:

Lerp()/ ,这正是您的逆 lerp 函数所做的。LerpUnclamped()
InverseLerp()


注意:我不会使用这个名字fraction()——它似乎很容易与fract()/混淆frac(),后者做一些完全不同的事情。