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

时间:2017-08-28 03:50:47

标签: javascript math

我今天早些时候问了一个类似的问题,事实证明我只是在数学方面很糟糕,因为我也无法解决这个问题。

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

e.g。

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以上的所有屏幕比率,它应该以这种方式进行缩放。

1 个答案:

答案 0 :(得分:1)

您需要为该比率每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)