优化我们正在开发的游戏,我们将进入每一个CPU周期都获胜的阶段。我们使用弧度来计算围绕其他物体旋转的物体的位置,我想在查找表中减少不必要的准确性。为此,我们大量使用了预先定义的Pi。这个Pi应该有多精确?
所以,我的问题是:
发布于 2009-05-20 16:02:15
你最好让它和你能存储的浮点表示一样精确。使用相同类型的更精确的浮点数进行计算不会花费更长的时间。
准确性通常是以重要数字的数量来衡量的;您需要自己决定您感兴趣的准确数字的数量。如果对pi使用精度较低的值,则该值的不精确性将传播到它所在的其他计算中。
发布于 2009-05-20 16:09:36
作为一个比较:我认为美国宇航局使用圆周率7小数点的精度,能够停靠到太空。
首先,我们需要确定你的位置计算需要有多精确,也就是说,你的程序中依赖于π的公式有多精确。我们需要从这里开始,以便知道你需要多精确的π才能达到这个目的。
一旦确定了这一点,你就可以或多或少地使用直接的数值分析来确定你需要多好的π精度。我可以帮你,但我需要职位公式来做:)
编辑:我怀疑你的公式是线性依赖于π的,也就是说,你没有使用某个模糊函数f(x,y,z,pi ),其中π是平方的或类似的。在这种情况下,公式的精度是π精度的因子,例如k*eps( pi )。否则,它基本上是一个因子乘以f对π的导数。不包括所有其他参数的精度f取决于!
干杯!
发布于 2009-05-20 16:52:54
这取决于您的计算中有多少有效位数。给出公式
C= pi *d
如果你想知道一个直径一英里的圆周有多少英寸,你需要六位数的圆周率来保持你想要的精度,因为一英里有63,360英寸,而圆周有199,051英寸。因为答案中有六个有效数字,所以我需要六位圆周率来计算到所需的精度。
3.14 *63 360= 198950.4
3.142 *63 360= 199077.12
3.1416 *63 360= 199051.776
3.14159 *63 360= 199051.1424
正如你所看到的,在这个例子中,我得到了正确的答案,只有5位数的pi,但情况并不总是这样。为了确保足够的精度,您至少需要和重要数字一样多的pi数字。
https://stackoverflow.com/questions/888807
复制相似问题