события, происходящие на разных скоростях в пределах таймера - PullRequest
0 голосов
/ 05 декабря 2011

Я полный мусор по математике, и это больно моей голове, пытаясь понять это. Я пытаюсь, чтобы две вещи происходили на разных скоростях. Я хочу иметь две скорости, не имеет особого значения, будет ли шкала от 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 голосов
/ 05 декабря 2011

Если вы хотите, чтобы «скорость» была эквивалентна частоте, вы не можете использовать ее как период, обратный частоте.Сделайте что-то вроде:

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

time1 += speed1
if time1 >= 1.:
    time1 -= 1.
    print "speed1"
0 голосов
/ 05 декабря 2011

В данный момент вы, кажется, подсчитываете, так что подумайте об этом.

Игнорируйте global_speed в течение минуты и просто используйте две скорости, s1 и s2.Поскольку вы фактически говорите «когда x кратно s1 или s2, выведите« speed1 »или« speed2 »соответственно, меньшее значение будет означать, что x кратно этому значению быстрее.

Итак, естьможно обойти это несколькими способами: вы можете просто принять, что более низкое значение быстрее, или вычесть текущую скорость из максимальной скорости (которая должна быть предварительно определена, или максимум из s1 и s2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...