对于那里的所有数学家,请阅读整个问题,这可以在没有任何HTML5知识的情况下得到解答: - )
我正在缩放(缩放)一个HTML5画布,我希望在很多小步骤中做到这一点,而不是一步一步让scrooling看起来“流畅”。解释一下:
当用户转动scroolwheel时,我的目标是将画布按比例缩放20%。现在我想把它分成20个小步骤。
我的问题是,由于画布的受限库,我只能使用2d Context的缩放(xscale,yscale)方法来实现。所以我不能将单位设置为特定的大小,这将使它变得容易。我必须在每一步中使用一个因素,我无法弄清楚如何做到这一点。
因此我的画布单位在步骤1中为100,我希望它们在步骤20中为130,其间有19个小步骤。
...
我现在的变量是当前的步数(0-19),总计步数(20)和目标缩放百分比(20)
这是我需要的一个非常简单的例子。主要问题是,我只能访问X而且我无法直接影响比例。
有人可以帮忙吗?我希望我解释得很好。
答案 0 :(得分:1)
你需要130/100的第20根。要计算它,请使用
k = Math.exp(Math.log(130/100) / 20)
提升到20次方的k将是130/100。
答案 1 :(得分:1)
不是你的问题所在:
但我相信你想找到x:
(1+x)**numberofStep - 1 = pourcentageOfIncrease //** is power
=> x= numberOfStepsNTHROOTOF(1+pourcentageOfIncrease) -1
表示numberofStep = 20 和pourcentageOfIncrease = 20
你找到:x=pow(1+20%,1/20.)-1= 0.00916 = 0.916% increase at each step
注意:这类似于计算compound interest,但用于缩放。您可以在每一步计算缩放以获得总缩放。
希望我理解你的问题并帮助