【发布时间】:2014-07-01 13:41:14
【问题描述】:
函数lerp()是编程语言中常用的函数:
lerp(a, b, t) = a + t * (b - a).
现在对于很多情况,我都有一个反函数:
fraction(x, a, b) = (x - a) / (b - a).
这个函数是这样构建的
lerp(a, b, fraction(x, a, b)) == x
和
fraction(lerp(a, b, t), a, b) == t
但是我对“分数”这个名字不满意。这个函数有通用名称吗?
【问题讨论】:
-
除了我在下面的回答之外,我还要补充一点,我喜欢将
t参数命名为“比率”而不是“时间”,因为它通常用作一部分与另一部分的比率(所以从技术上讲,它不是比率,而是比率的一小部分)。所以近年来我一直倾向于使用decudeRatio()或ratioOf()或proportionFrom()之类的名称(“比例”是我喜欢的另一个名称,尽管不完全符合数学定义)。这在具有命名参数的现代语言中可以非常干净,从而导致像ratio(of: 3.5, in: 0.0...10.0)或(3.5).proportion(within: 0.0...10.0)这样的调用。 -
我的库有 prel (x, xLo, xHi) 返回 0 到 1。还有 lerpxlh (yLo, yHi, x, xLo, xHi) 返回与 xLo 到 xHi 中的 x 成比例的 ay 值。跨度>
标签: function naming-conventions terminology inverse linear-interpolation