Ллирик
|
|
« : 20-06-2019 13:29 » |
|
Подскажите, пожалуйста, какой алгоритм (или где его искать) использует винда для сглаживания движения мыши, чтобы я мог его использовать в моём драйвере мыши, а то я когда в нём понижаю скорость передачи структуры MOUSE_INPUT_DATA вышестоящему драйверу, то становиться заметно, что курсор движется рывками, значения в LastX или в LastY передаю 1 или -1, но если я уменьшаю скорость перемещения в свойствах мыши в Панели Управления, курсор по экрану движется плавно
|
|
|
Записан
|
|
|
|
Ochkarik
|
|
« Ответ #1 : 20-06-2019 14:07 » |
|
точный алгоритм винды не знаю, можно попробовать построить модель движения мышки по существующим точкам, и фильтровать скорость и ускорение КИХ или БИХ фильтром (или пытаться зафиксировать ускорение/скорость) а затем интерполировать координаты с нужной скоростью обновления. думаю алгоритм примерно такой должен быть. вроде все просто должно получатся.
PS то есть по существующим координатам считаете вектор скорости(лучше и ускорения тоже) - оно у вас получится с интервалом опроса мыши. потом его усреднить за какой то интервал, но тут главное не переборщить чтоб мышка не двигалась после того как руку убрали. а потом по вычисленному вектору скорости заново рассчитывать координаты уже с необходимым периодом, который меньше интервала опроса.
а можно наверное какие нибудь сплайн-интерполяции прикручивать, но по мне это еще менее понятно.
|
|
« Последнее редактирование: 20-06-2019 14:13 от Ochkarik »
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
Ллирик
|
|
« Ответ #2 : 20-06-2019 15:48 » |
|
Вот только мне не совсем понятно как в данном случае интерполировать единицу) ведь это число-то целое. Даже если я отправляю всего одну структуру MOUSE_INPUT_DATA со значением в LastX 1, то курсор мыши почему-то не на один пиксель на экране, а сразу на несколько
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #3 : 20-06-2019 16:25 » |
|
Ллирик, вот лично меня, как юзера, дико раздражает сглаживание курсора или прокрутки (некоторые сайты последним страдают) и даже текста. Зачем оно вообще нужно ? Стоит ли делать усилия при разработке, чтобы потом кого-то раздражать ? )
|
|
|
Записан
|
|
|
|
Ллирик
|
|
« Ответ #4 : 20-06-2019 16:50 » |
|
Алексей, а меня раздражает когда курсор мыши вместо одного пикселя перемещается аж на 4, и ты никак не можешь попасть в нужную точку)
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #5 : 20-06-2019 18:51 » |
|
Ллирик, раньше, помнится, ещё на XP было такое - через пиксель мыша двигалась. На семёрке такого нету у меня. Может, это мышка тогда такая была, конечно. Сейчас чётко позиционируется
|
|
|
Записан
|
|
|
|
|