C++ Getting 1.#INF
C++ Getting 1.#INF
我试图计算我的游戏的FPS,但值不稳定,所以我想实现线性插值,使显示的文本平滑。问题是我得到的是1。#INF values,我试着在谷歌上搜索,但找不到真正的解释。
下面是插值函数:float Lerp(float from, float to, float t)
{
return (from*(1 - t) + to*t);
}
如何计算FPS:
void CalculateTime()
{
deltaTime = (float)(SDL_GetTicks() - lastFrameTime) / 1000.0f; // this is around 0.02 each frame
fps = 1.0f / deltaTime; // this is 50-60 every frame
lastFps = Lerp(fps, lastFps, 0.5f); // lastFps is initialized at 60.0
printf("%2.4fn", lastFps);
}
一切似乎都很好…deltaTime, fps, lastFps都是浮点数(我也尝试过double,但没有区别),但当printf执行时,我得到1。#INF
任何想法?
最有可能的是,deltaTime
在某一点上为零(由于帧的绘制时间不到一毫秒)。这使得fps = 1.0f / deltaTime;
的值为无穷大。由于你做插值的方式,一旦一个无穷大的值进入系统,lastFps
将永远是无穷大的。
相关文章:
- 如何检查 log2 'inbuilt c++ function'是否返回 '-inf'?
- 是否可以将"inf"分配给变量,例如 c++ 中的常规数值
- 在泰勒展开中获取 inf 对于 e^x,但仅适用于小误差边界
- QT/C++: Getting LASTINPUTINFO to work
- 获取从函数返回'-inf'
- 计算百分比 C++ 时产生的 inf%
- Fuse文件系统查找/Trash、/autorun.inf和/.xdg卷信息文件
- 为什么当我尝试计算平均绝对偏差时,我的程序返回 inf
- Getting a SIGSEGV
- c++ std 的 inf 的行为是否与常识无穷大完全一样
- c++ UrlDownloadtoFile getting LNK2028-19 and LNK1120
- 什么是 gdb 中的 inf
- INF输出计算线斜率
- 有关结构数据'getting'的性能
- 继续获得 1.#INF 作为我的输出
- Getting a STR16 from sprintf
- 从字符串中读取溢出双倍作为'inf'的安全方法
- 在c++中将-inf和inf值过滤为0
- 提升单元测试:BOOST_CHECK_CLOSE回报 1.#INF%
- C++ Getting 1.#INF