Как рассчитать величину скорости моего курсора мыши в Python? - PullRequest
2 голосов
/ 18 октября 2010

http://dl.dropbox.com/u/779859/speedCalc_puradata.JPG

Я добился этого в чистых данных, взгляните на схему того, о чем я думаю:

  • Получение ввода Midi Control от ctlin 20 и 21
  • Труба задерживает любой сигнал, который она получает
  • Пифагор
  • Виола, скорость ввода. Единицы не имеют значения, пока они абсолютны.

Я думал о том же, но в python, для курсора мыши.

Обычно, когда я двигаю мышью, я хочу видеть, с какой скоростью движется мышь. Частота входных пакетов постоянна и составляет 200 Гц.

Я мог бы придумать способ, хотя я еще не проверял его. Как насчет сбора, скажем, 51 значения в списке, сохраняя [0] текущим и [50] самым старым. Тогда просто посчитать эти два значения?

Дайте мне знать, что вы думаете.

Ответы [ 2 ]

2 голосов
/ 18 октября 2010

То, что вы описываете, даст вам величину скорости, умноженную на длительность временного интервала измерения.Фактическая скорость будет вектором.Вы можете получить его первую координату как (posX - delayed_posX)/t, а его вторую координату как (posY-delayed_posY)/t, где t - временной интервал между измерениями.Обратите внимание, что это удовлетворяет P final = P start + t V где P это наш вектор положения.Всякий раз, когда вы хотите знать, как измерить приближение скорости, это всегда ваша отправная точка.Чем меньше временной интервал, тем точнее будет картина скорости.

Отвечая на ваш вопрос о time.sleep, нет, он не замедлит ваш другой код: он полностью остановит его, еслион работает в другом потоке.

Что именно вы пытаетесь сделать?Трудно сказать, есть ли лучший способ, если мы не знаем, где вам нужны данные, когда вам нужно, чтобы они были там, и насколько актуальными они вам нужны.

0 голосов
/ 19 октября 2010

Оказывается, все, что мне было нужно, это разница в X, а затем я использовал ее как величину.

x_list.insert(0, x)
if len(x_list) > 5:
    x_list.pop()
# Get the velocity
velocity = abs(x_list[0]-x_list[-1])

Где 'x' - текущее значение курсора, обновляемое с частотой 200 Гц.

...