【发布时间】:2017-08-28 13:14:45
【问题描述】:
我今天早些时候问了一个类似的问题,结果我只是数学很烂,因为我也想不通这个问题。
我正在通过宽度/高度计算屏幕比例。我需要一个函数来将结果数字转换为新的比例。
例如
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 的屏幕比例,它应该保持这种缩放方式。
【问题讨论】:
-
"我想把它转换成 133.3" ---
133.3是从哪里来的? -
@danh 这是这种技术的一种变体:andyshora.com/css-image-container-padding-hack.html 我正在为各种分辨率的资产提供适当的填充。这些比率似乎与期望的结果成线性关系。因此,每增加 0.5 的比率会导致 33.3% 的额外填充。
-
@daveycroqet 所以
((ratio - 1) / 0.5) * 0.333? -
@Carcigenicate 是的,你明白了。提交作为答案!
-
@daveycroqet 检查我更新的答案。它实际上可以进一步简化并更精确。
标签: javascript math