PS/2 鼠标接口中的缩放命令背后的逻辑是什么?

PS/2 鼠标接口中的缩放命令背后的逻辑是什么?

我读过有关 PS/2 鼠标接口的文章,其中提到主机(计算机)可以向设备(鼠标)发送一个按 2 缩放的命令(代码0xE7),这将导致设备缩放它向主机报告的移动。缩放函数为:

+-----------------+--------+
| Actual movement | Report |
+-----------------+--------+
| 0               | 0      |
| 1               | 1      |
| 2               | 1      |
| 3               | 3      |
| 4               | 6      |
| 5               | 9      |
| N>5             | 2*N    |
+-----------------+--------+

我想知道这些值从何而来,它们有什么用途。为什么它不是一个正常的 2 倍缩放函数?

答案1

因为在低速时缩放 2 倍可能导致无法进行小而精确的移动,因此在低速(<5)时,在 5 倍的移动之上会缓慢地达到完整的“2 倍”缩放。

如果它一直是“2x”,那么即使鼠标最细微的移动也会移动两个像素,这使得几乎不可能进行 CAD 绘图之类的操作(您只想移动 1 个像素,而无需不断在配置文件之间切换)。

如今,几乎所有鼠标都内置了这种缩放功能,鼠标加速度是您物理移动速度的一个因素,以便在需要大动作时平衡精细动作和快速响应。

相关内容