自从我需要在C#中使用PI(3.1415 ...)后,我使用了Math.PI来获取值.通常我会使用像Math.PI/2.0或的值2.0*Math.PI,但现在我注意到XNA提供了一个MathHelper类.关于这个的好处是我可以打电话MathHelper.PiOver2和MathHelper.TwoPi,从而使更琐碎的小事无比一步.;-)
我认为这两个课程是可以互换的,但我注意到了Math.PI/2.0 != MathHelper.PiOver2.我试着研究为什么会这样,但我一无所获.所以,我以为我会在这里试试运气.关于使用PI,Math类和MathHelper类之间是否存在差异?一个比另一个更受欢迎吗?或者我应该单独留下足够好的东西,并确保在我的整个计划中始终如一地使用其中一个?
Cod*_*Tao 12
他们有多相同?如果它们足够接近,这可能只是传统的问题,即用浮点测试相等性几乎是不可能的.
它们是同一类型的吗?我的观点是大多数游戏计算是用浮点数完成的,其中Math.PI是双倍的.
看数字:
3,1415926535897900000000000000000 // Math.PI
3,1415930000000000000000000000000 // MathHelper.PI
3,1415926535897932384626433832795 //来自Windows Calc的PI
1,5707963267949000000000000000000 // Math.PI/2
1,5707963705062900000000000000000 // MathHelper.PiOver2
1,5707960000000000000000000000000 // MathHelper.Pi/2
1,5707963267948966192313216916398 //来自Windows Calc的PI/2
问题解释:准确性的损失
最佳PI/2 = Math.PI/2
| 归档时间: |
|
| 查看次数: |
4707 次 |
| 最近记录: |