Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Помогите в работе с мышью Добавлено: 13.01.06 00:14  

Автор вопроса:  DDF

Ответить

  Ответы Всего ответов: 18  

Номер ответа: 16
Автор ответа:
 DDF



Вопросов: 2
Ответов: 14
 Профиль | | #16 Добавлено: 13.01.06 23:59
Мышина исследована. Она дает один сигнал при перекрытии луча с передатчика на приемник, и один при открытии. Учитывая, что в моем Джениусе в диске 40 отв и 40 перегородок, за одно полное вращение вала, должно быть 80 импульсов. При диаметре шара~ 21 и диаметре вала с диском ~ 3, передаточное отношение~ 7. Следовательно, при одном полном обороте шара, т.е. при пути_по_столу = 3,14*21=65,95 мм, результатом работы программы должно быть ~ число 80 умноженное на передаточное число 7, ИТОГО: 560.
Это была теория, на практике: при равномерном перемещении мыши, число более 360 не получается, а среднее число оборотов по результатам 10 опытов: ~ 308 :))), следовательно КПД в трущихся элементах в результате потерь на трение и проскальзывание составило: КПД= 308/560=0.55 или 55% .
Ну вот и все, на последок скажу, что используя Do … While и массив можно получить более точные измерения и строить сразу график в PicherBox’e изменения скорости.

Ответить

Номер ответа: 17
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #17
Добавлено: 14.01.06 16:24

число более 360 не получается

Может это по тому, что не каждому перекрытию всегда соответствует импульс? Может мышь может передавать информацию о нескольких перекрытиях за один раз?

Ответить

Номер ответа: 18
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #18
Добавлено: 15.01.06 02:47
Можно засекать пробег мыши по экрану. Для этого можно по таймеру считывать ее смещение от центра и ставить ее обратно в центр.
Чтобы получить пробег, где один пиксель соответствует одной щелке, прошедшей щерез оптический детектор, надо:
-поставить чувствительность мыши на 10
-убрать ускорение мыши, установив два пороговых значения на нули

Все это можно сделать с помошью функции API SystemParametersInfo с аргументами SPI_GETMOUSE, SPI_GETMOUSESPEED, (их SET_ эквиваленты).

Вот так уже более реально узнать о том, сколько там движения теряется.

Кстати. В теоретических расчетах знать радиус шарика вовсе не обязательно. А не зная, меньше вероятность сделать ошибку.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам