我正在尝试获取时间流逝百分比,我要做的是先检查一个时间间隔,我想获取该时间间隔中流逝时间的百分比,如果有意义
这是我的代码:
if ( ofGetElapsedTimeMillis() > lastTimeCheck + timePeriod ) {
lastTimeCheck = ofGetElapsedTimeMillis();
cout << "its time!" << endl;
}
float p = (float)ofGetElapsedTimeMillis() / (float)(lastTimeCheck + timePeriod);
cout << "time percentage: " << p << endl;
timePeriod = 3000,所以我每3秒更新一次lastTimeCheck变量,下面的代码行获取该时间间隔内的百分比,我的结果从0.5到0.9,但我需要p从0到1
提前致谢
r
最佳答案
您是说lastTimeCheck和lastTimeCheck + timePeriod之间的时间吗?那会是
float p = (float)(ofGetElapsedTimeMililis() - lastTimeCheck) / (float)(timePeriod);
您可能也可能会丢失其中一个浮标强制转换,但是我认为将其保留在其中是更安全且更容易理解的。但是,如果需要确保p小于或等于1,则应保存并重新使用上一次调用的ofGetTimeElapsedMillis值,否则您应该在此后显式检查p。
int millisNow = ofGetElapsedTimeMillis();
int millisSinceLastCheck = millisNow - lastTimeCheck;
if (millisSinceLastCheck > timePeriod) {
lastTimeCheck = millisNow;
millisSinceLastCheck = 0;
cout << "it's time!" << endl;
}
float p = (float)(millisSinceLastcheck) / (float)(timePeriod);
cout << "time fraction: " << p << endl;
关于c++ - 如何获得耗时百分比?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5856607/