数学:将一个数字缩放到另一个数字的公式



我今天早些时候问了一个类似的问题,结果发现我只是数学很糟糕,因为我也无法弄清楚这个问题。

我正在通过宽度/高度计算屏幕比例。我需要一个函数将该结果数字转换为新比例。

例如

function convertNum(ratio) {
return //formula here
}

例子:

Given a resolution of 3000x1000 = ratio of 3 (i.e. 3000/1000).
I want it converted to 133.3 via the function, e.g. convertNum(3) spits out 133.33
2500x1000 = 2.5 (desired result: 100)
2000x1000 = 2   (desired result: 66.6)
1500x1000 = 1.5 (desired result: 33.3)
1000x1000 = 1   (desired result: 0)

对于高于 1.0 的所有屏幕比例,它应该继续以这种方式缩放。

您需要为比率中每 0.5 增加 33.3%。

首先弄清楚您需要添加多少"填充件":

// Subtracting 1 since 1 should result in a 0
(ratio - 1) / 0.5

然后将填充件数乘以填充量:

((ratio - 1) / 0.5) * 0.333

但是除以 0.5 与乘以 2 是一回事,因此可以进一步简化为:

(ratio - 1) * 2 * 0.333

但这显然与:

(ratio - 1) * 0.666

虽然,您可以通过将其更改为以下方面来获得更高的精度:

(ratio - 1) * (2 / 3)

最新更新