【发布时间】:2017-08-11 15:35:55
【问题描述】:
我想创建每 500 毫秒运行一次的触发器,并且它应该不会随着时间的推移而漂移。 我运行这段代码以在 pyopengl 中显示一些东西
def __init__(self):
...
self.t_on = time.clock()
...
def display_gl(self):
...
if (time.clock() - self.t_on) >= 0.500:
self.t_on = time.clock()
#do things
...
时钟随着时间的推移而漂移,我认为这是因为if 条件在一段时间后捕捉到了 500 毫秒的时刻。
有什么办法可以避免这个飘忽不定的问题吗?
已解决:
改变:
if (time.clock() - self.t_on) >= 0.500:
self.t_on = time.clock()
到:
if (time.clock() - self.t_on) >= 0.500:
self.t_on =time.clock() - ((time.clock() - self.t_on) - 0.500)
【问题讨论】:
-
检查你的if语句的时间,然后从500ms推断if,所以新的时间+处理时间正好是500ms。