2017-08-28 485 views
0

今天早些时候我问了一个类似的问题,结果发现我只是勉强接受数学,因为我无法弄清这个问题。数学公式:将一个数字换算成另一个数字

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

例如

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

“我希望它转化为133.3” ---在哪里了'133.3'来自? – zerkms

+0

@danh它是这种技术的变体:http://andyshora.com/css-image-container-padding-hack.html 我给资产适当的填充各种决议。这些比例似乎与预期结果呈线性关系。因此,每0.5比率凹凸结果会得到33.3%的附加填充。 – daveycroqet

+1

@daveycroqet所以'((比率 - 1)/ 0.5)* 0.333'? – Carcigenicate

回答

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) 
+0

这是一个非常彻底的崩溃,我非常赞赏它。我不知道为什么我的大脑无法破译这个数学,因为你看起来很简单! – daveycroqet

+0

@daveycroqet编写代码的很大一部分是找出小的数学方程。如果你练习它,随着时间的推移你会变得更好。我喜欢抽出一些东西。即使这不是一个视觉问题,只要看到*某物*有形的帮助。写作时在你身边放一张折叠的方格纸和一支笔,可以鼓励它。回顾基本代数也是很有用的,即使你以前学过它。 – Carcigenicate

相关问题