在时钟计时器内以不同速度发生的事件

时间:2011-12-04 22:05:05

标签: python math time

我在数学方面总是垃圾,而且它试图弄清楚这一点。我试图以不同的速度发生两件事。我希望有两种速度,无论比例是来自1 - 10还是0.1 - 1,都不是特别重要。但我想让它们越快越快。在我想出来的那一刻,它反过来。我希望它基于时钟分辨率,所以如果我增加它 - 那么数学仍然很好用它。全球速度设置只是为了玩,可以摆脱它。可以想出扭转这种情况的方式,所以反过来,但我认为它最终将成为一个巨大的方程式,我的脑袋:)这可能是一种做到这一点的方式,即“标准” - 任何想法?

#!/usr/bin/env python

import time

speed1=1
speed2=10
clock_res=500
global_speed=5

def start():  

        for x in range (0,clock_res):
                print x
                if (x%(speed1*global_speed)) == 0:
                        print "speed1"
                if (x%(speed2*global_speed)) == 0:
                        print "speed2"
                time.sleep(.05)

if __name__ == '__main__':

        start()

感谢您的帮助! 根据建议编辑..

#!/usr/bin/env python

import time

speed1=0.7
speed2=0.3
clock_res=500

def start():  

        for x in range (0,clock_res):
                print x
                if (x%(speed1*clock_res)) == 0:
                        print "speed1"
                if (x%(speed2*clock_res)) == 0:
                        print "speed2"
                time.sleep(.05)

if __name__ == '__main__':

        start()
那更好吗?

2 个答案:

答案 0 :(得分:0)

目前,你似乎在计算,所以,考虑一下。

忽略global_speed,只有两个速度,s1和s2。鉴于你有效地说“当x是s1或s2的倍数时,分别输出”s​​peed1“或”speed2“,较低的值将意味着x是该值的倍数更快。

所以,有几种方法可以解决这个问题。您可以接受较低的值更快,或者从最大速度中减去当前速度(必须预先确定,或者s1和s2的最大值)。

答案 1 :(得分:0)

如果您希望“速度”等于频率,则不能将其用作周期,这是频率的倒数。做类似的事情:

speed1 = .3    # must be between 0 and 1
speed2 = .7

time1 += speed1
if time1 >= 1.:
    time1 -= 1.
    print "speed1"