在一个时钟周期内以不同速度发生的事件

2024-09-28 20:51:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我对数学一窍不通,想弄明白这件事弄得我头痛。我试着让两件事以不同的速度发生。我想有两种速度,不管刻度是从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()

这样更好吗?你知道吗


Tags: envifbintimeusrres数学global
2条回答

如果你想让“速度”等同于频率,就不能把它当作周期,周期是频率的倒数。执行以下操作:

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

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

现在,你似乎在数,所以,考虑一下这个。你知道吗

暂时忽略全局速度,只有两个速度,s1和s2。如果您实际上是在说“当x是s1或s2的倍数时,分别输出”speed1“或”speed2“,则值越小意味着x是该值的倍数越快。你知道吗

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

相关问题 更多 >