-1

我有这个数学问题。我需要知道公式才能得到这样的东西:

50% of (x) = 150% of 70
100% of (x) = 100% of 70
150% of (x) = 50% of 70
200% of (x) = 25% of 70
...

这似乎很容易,但我被这个小问题困住了。请注意,(x)是一个变量,与此计算无关。

有关更多信息,我正在计算图像的偏移量。偏移量需要与调整大小相关。下面是一个例子(宽度测试是1920px,原始偏移是70px):

50% of 1920 = 150% of 70 = 105
100% of 1920 = 100% of 70 = 70
150% of 1920 = 50% of 70 = 35
200% of 1920 = 25% of 70 = 17,5
...

最终代码是在 javascript 中。

* 编辑 *

事实上,我只需要了解我如何以同步方式增加一个值并同时减少另一个值。

...
25% ==> 200%
50% ==> 150%
100% ==> 100%
150% ==> 50%
200% ==> 25%
...

有渲染(对不起,它制作得很快) 就是这样渲染

事实上,对于我的计算,“70”是一个常数。我的图像越大 (>100%),我的偏移量就需要更小。这也适用于倒置情况(我的图像较小 <100%,我的偏移量需要更大)。

4

4 回答 4

0

如果您需要找到 x 等于什么(这是方程式的惯例):70 / 100 * 50(即我们计算 70 的 150%)/50(这是 x 的 1%)* 100

UPD:根据更多评论,我认为您最好使用一些硬编码值而不是计算值。

var myPercentage = 0;

if (initPercentage <= 50) { myPercentage = 150; } else if (initPercentage > 50 and initPercentage <= 100) { ... }

于 2013-03-21T03:24:08.127 回答
0

恐怕它至少不是一个线性方程:

function test(x){return x*-1 + 200}
alert(test(50)) // okay 150
alert(test(100)) // okay 100 
alert(test(150)) // okay 50
alert(test(200)) // wrong 0 

http://jsfiddle.net/basarat/Skss2/

于 2013-03-21T03:38:26.060 回答
0

你有一个基本的数学问题:

a% * x = b% * 70

求解 x,首先展开项(* 和 / 的顺序在这里不重要):

a * x / 100 = b * 70 / 100

两边乘以 100

a * x = b * 70

两边除以a:

x = b * 70 / a

所以现在给定 a 和 b 你可以求解 x。让a = 50b = 150,然后:

x = 150 * 70 / 50
x = 210

测试:70 的 150% = 105 和 210 的 50% = 105,所以它有效。

但是你有:

100% of (x) = 100% of 70

这意味着x == 70,这是不一致的,然后:

150% of (x) = 50% of 70

这意味着x = 23.33333333, 这又是不一致的。

您可以做一个最小二乘解决方案来计算出 x 的最佳值,但这些值很可能分布得如此广泛,它不会有太大用处。

于 2013-03-21T03:38:50.443 回答
0

是的..我解决了我的问题,但我的逻辑是错误的。对不起。我使用 Excel 来查找我的公式。

于 2013-04-11T02:51:54.127 回答