2017-08-12 100 views
-2

我想用一個指數計算距離z座標將在屏幕上從基本的z座標的對象是,因爲越遠的對象是當物體靠近時,物體移動越慢,反之亦然,速度會加快。但涉及在這樣做時,計算需要的負雙基加倍功率,其可以是或可以不是一個負java負雙正交/負雙倍的力量

Math.pow(-1.1, -(z-25))+10.8347 

如果我-10和20每1.5之間使用數字,它給這些答案

-10.0 = -17.26773684806433 
-8.5 = NaN 
-7.0 = 31.948476745352608 
-5.5 = NaN 
-4.0 = -5.028392971714952 
-2.5 = NaN 
-1.0 = 22.752876537727232 
0.5 = NaN 
2.0 = 1.8803975674476092 
3.5 = NaN 
5.0 = 17.56219994932561 
6.5 = NaN 
8.0 = 5.780229715007055 
9.5 = NaN 
11.0 = 14.632198335832413 
12.5 = NaN 
14.0 = 7.981583293889997 
15.5 = NaN 
17.0 = 12.978288810000002 
18.5 = NaN 
20.0 = 9.22419 

當使用desmos時,我應該得到一個很好的慢速指數與每個人的答案。但這裏的計算只會起作用,輸入是一個整數,小數給出NaN和奇數似乎在做他們自己的事情,所以這裏唯一正確的數字是-10,-4,2,8,14,20,把這些答案與他們的答案一致顯示指數,但我需要這個方程來爲幾乎所有的數字工作。

+2

你有沒有[閱讀數學的javadoc。 POW(https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#pow-double-double-)? 「如果第一個參數是有限的並且小於零...... [並且]如果第二個參數是有限的而不是整數,那麼結果是NaN。」 – yshavit

+0

那麼有沒有一種方法可以從其他地方獲取我的計算結果? –

+0

有雙打,沒有。例如,'Pow.math(x,1.5)'是'Pow.math(x,3./2。)'。這意味着x的立方根,立方體。如果x是負數,那麼它的平方根是一個虛數 - 而雙數不能表達那些數。 – yshavit

回答

2

一個應該給出距離的公式應該對所有可應用的輸入都有一個真實的而不是想象的結果。

將負數提高到小數次數有imaginary number結果。 Java double是實數的近似值。只要結果是虛構的,Java Math函數就會返回NaN。

將負數提高到偶數整數即可獲得肯定結果。將負數提高到奇數整數將產生負面結果。

您更喜歡z的偶數整數值的結果,對應於奇數整數值z-25。表現較好的公式-Math.pow(1.1, -(z - 25)) + 10.8347與這些投入相匹配,但您需要重新考慮公式背後的理論。

-10.0 : -17.26773684806433 
-8.5 : -13.524047455696502 
-7.0 : -10.279076745352606 
-5.5 : -7.466387494888428 
-4.0 : -5.028392971714952 
-2.5 : -2.91517790750445 
-1.0 : -1.0834765377272344 
0.5 : 0.5042132175022935 
2.0 : 1.8803975674476092 
3.5 : 3.0732523797913576 
5.0 : 4.107200050674389 
6.5 : 5.00340952651492 
8.0 : 5.780229715007055 
9.5 : 6.453565158914292 
11.0 : 7.037201664167585 
12.5 : 7.543088549146725 
14.0 : 7.981583293889997 
15.5 : 8.36166359815682 
17.0 : 8.691111189999997 
18.5 : 8.976671148126837 
20.0 : 9.22419 
0

我理解了它通過改變底片從

Math.pow(-1.1, -(z-25))+10.8347 

-(Math.pow(1.1, -(z-25))-10.8347) 

不知它讓所有的答案工作

+0

我同意改變後的公式適合你喜歡的值,但是你是否理解爲什麼它是正確的,從理論上講你的原始公式是正確的?否則,您可能會在其他情況下遇到問題。 –