java负二倍的pos / neg双倍的力量

时间:2017-08-12 22:51:46

标签: java 3d double exponential negative-number

我正在尝试使用指数计算出z坐标在屏幕上距离对象的基本z坐标的距离,因为距离越远,对象离开的距离越远,反之亦然越来越近,它加快了。但这样做所涉及的计算需要一个负的双倍基数来加倍,这可能是也可能不是负数

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

如果我每1.5使用-10到20之间的数字,它会给出这些答案

-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,放这些答案变成excel,他们的回答显示出指数,但我需要这个等式适用于几乎所有的数字。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我通过改变

中的底片来解决这个问题
Math.pow(-1.1, -(z-25))+10.8347

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

以某种方式让所有答案都有效

相关问题