fmod在处理器时间方面有多贵?

时间:2011-05-22 17:13:15

标签: c++ math

在我的游戏中,我需要确保角度不超过2 pi。所以我使用fmod(angle,TWO_PI);

每秒大约做100次这显然很贵吗?

2 个答案:

答案 0 :(得分:7)

每秒100次?这几乎为零,你不应该麻烦自己。

即使fmod需要100个时钟周期 - 即10,000个周期/秒。对于1个1GHz的CPU - 这是0.001%的CPU。

顺便说一下:你为什么要做TWO_PI的fmod?如果你打算使用sin()或cos() - 你可以跳过它。

答案 1 :(得分:0)

如果要确保角度超过 2pi弧度,则应使用angle < TWO_PI。使用fmod将为您提供余数,如果您想要找到实际角度并忽略多次旋转,这将非常有用,但不会提供有关哪个更大的信息。

使用<是非常有效的,只要你不是每秒做100,000次以上或者循环中没有很多其他代码,你应该没问题。 fmod因为它涉及分割和浮点运算而有点贵,但在大多数现代硬件上,每秒100次仍然几乎可以忽略不计,所以我怀疑你会遇到很多麻烦。如果您仍然担心,请做一些测试。如果您需要帮助来解释测试或有其他具体问题,请发布代码,我们将帮助您分析它们。 :d