2013-02-15 51 views
0

假設我有一個變量dimension,我想將它從值a更改爲值bab是整數,第一個比第二個大。爲動畫逐漸更改值

線性地做到這一點我應該做的:

while (dimension < a) 
dimension = dimension + 1 

但是如果我想讓它成倍增長?我完全吮吸數學,我無法弄清楚這一點。我想:

while (dimension < a) 
dimension = dimension * dimension 

點是價值幾乎立即失控,它得到巨大的(方式比a更大)

即使我嘗試使用一個巨大的規模(通過設置a到一個巨大的價值)我無法做到這一點......但似乎these guys做到了,我認爲它應該也很容易!

他們也可以用各種瘋狂的方程來做同樣的事情,只要我能夠實現一個方程,所有這些方程對我來說都很容易!

我只想要一個值增加1至2個,但逐漸...

希望有人能幫助,謝謝!

回答

1

一個非常簡單的方法就是讓第二個計數器在每次迭代時增加一個較小的數值,然後乘以原始計數器來設置它。例如,你的情況:

step = 1.2; 

while(dimension < a) { 
    dimension = Math.max(dimension * step, a); 
    step += 0.1; 
} 

調整值將可能要達到精確預期的效果,但是這是它的總體思路。 對Math.max的調用將確保該值永遠不會超出您的目標。

+0

我現在正在嘗試此操作! – Saturnix 2013-02-15 02:01:27