Значения Mouse.move
Я понимаю, что Mouse.move
перемещает мышь из ее текущего положения, например:
Mouse.move(100, 100);
Переместит мышь на 100 пикселей вправо и на 100 пикселей вниз.
Но на самом деле он сдвинется примерно на 150 пикселей вправо и/или на 150 пикселей вниз.
Я уже тестировал без точности/ускорения курсора, и это ничего не меняет.
Какие единицы измерения использует функция?
Я знаю о лимите 127–127 и уважаю его, но все же... когда я прошу переместить 100 100, он не перемещается на 100 100.
@Owow, 👍2
1 ответ
Лучший ответ:
Координаты мыши не являются пикселями. Они представляют собой пропорцию физического минимума/максимума параметров дескриптора отчета. Поскольку они не указаны в дескрипторе отчета, они считаются такими же, как логические: от -127 до 127.
Таким образом, перемещение на 100 "единиц" равно перемещению 100/(127-(-127)) от 100%, что составляет около 40%.
Но 40% чего?
Ну, 40% дюйма. Или то, что ваша ОС считает дюймом на вашем текущем экране.
В спецификации HID:
Хотя логический минимум и логический максимум (экстенты) связывают значения возвращаемое устройством, физический минимум и физический максимум дают значение этих границ, позволяя смещать и масштабировать значение отчета. Например, термометр может иметь логические размеры от 0 до 999, но физические размеры 32 и 212 градусов. Разрешение можно определить по следующему алгоритму:
if ((Physical Maximum == UNDEFINED) || (Physical Minimum == UNDEFINED) || ((Physical Maximum == 0) && (Physical Minimum == 0))) { Physical Maximum = Logical Maximum; Physical Minimum = Logical Minimum; } If (Unit Exponent == UNDEFINED) Unit Exponent = 0; Resolution = (Logical Maximum – Logical Minimum) / ((Physical Maximum – Physical Minimum) * (10^Unit Exponent))
- Как использовать SPI на Arduino?
- Нажать клавишу Windows, используя «keyboard.press();»
- Как подключить вывод INT MPU 6050?
- Улучшенное циклическое переключение цветов RGB.
- Проблема с загрузкой моего скетча на Ардуино
- Отправка мультимедийных клавиш клавиатуры с помощью библиотеки клавиатур
- Распиновка аналога Arduino Pro Micro
- Как преобразовать скетч примера Arduino в полный проект C++?
это имеет смысл, спасибо!, @Owow