Javascript 相对的;交叉口;百分比计算

Javascript 相对的;交叉口;百分比计算,javascript,math,Javascript,Math,我有一道数学题。我需要知道这样的公式: 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): 最后的代码是javascript *编辑* 事

我有一道数学题。我需要知道这样的公式:

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):

最后的代码是javascript

*编辑*

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

...
25% ==> 200%
50% ==> 150%
100% ==> 100%
150% ==> 50%
200% ==> 25%
...
这是渲染(抱歉,渲染速度太快)


事实上,根据我的计算,“70”是一个常数。我的图像越大(>100%),我的偏移量就越小。这也适用于倒置的情况(我的图像较小,如果您需要找到x等于什么(这是方程式的惯常用法): 70/100*50(即我们计算70的150%)/50(这是x的1%)*100

UPD:基于更多的评论,我认为你最好使用一些硬编码值,而不是计算值


var-myPercentage=0


如果(initPercentage 50和initPercentage,恐怕它至少不是一个线性方程:

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 

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

a% * x = b% * 70
求解x时,首先展开术语(此处*和/的顺序不重要):

两边乘以100

a * x = b * 70
将两边分开一个:

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

x = 150 * 70 / 50
x = 210
测试:70=105的150%和210=105的50%,所以它是有效的

但是那么你有:

100% of (x) = 100% of 70
这意味着
x==70
,这是不一致的,然后:

150% of (x) = 50% of 70
这意味着
x=23.33333333
,这也是不一致的


你可以用最小二乘法解出x的最佳值,但这些值可能分布得太广,没有多大用处。

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

你的问题是什么?我需要知道得到这个结果的公式(50%=>150%,200%=>25%,等等)。所以你需要在给定50%,150%和70的情况下计算x?不,我需要得到相对值。在我的计算中,我知道如果我的图像大小调整为宽度的100%,我的“偏移量”需要是70,因为它是70的100%。在这种情况下,我知道,例如,图像宽度的200%,偏移量需要是17.5,因为它是70的25%。如果我不清楚,我很抱歉。它仍然很不清楚。你是想找到1)偏移量还是2)将宽度转换为offest所需的更改的百分比?3) 一些完全不同的东西?我不认为他需要找到x,这是我在评论中问的。事实上,在我的计算中,“70”是一个常数。我的图像越大(>100%),我的偏移量就越小。这也适用于反向情况(我的图像较小,因此您需要根据其他参数找到偏移量?我不明白。70的150%!=1920的50%…应该与什么成比例?@smk对不起,我的英语不好,但我认为这是我需要的。我需要得到“相对偏移量”基于其他参数。是的,这不是我需要的线性。这是指数。这是一个高度倾斜的数据集。你最好的是二次数据集:因为它在前三个点之间线性移动,然后跳跃,你无法得到一个平滑的方程,无论是指数/二次,请检查我对原始问题的更新,我做了一个illu我希望这对你有帮助!
x = 150 * 70 / 50
x = 210
100% of (x) = 100% of 70
150% of (x) = 50% of 70