我读过有关 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 个像素,而无需不断在配置文件之间切换)。
如今,几乎所有鼠标都内置了这种缩放功能,鼠标加速度是您物理移动速度的一个因素,以便在需要大动作时平衡精细动作和快速响应。