来老铁干了这碗代码 2020-03-30 23:22 采纳率: 75%
浏览 357
已采纳

鼠标怎么知道我们向左划还是向右划??? 求解惑?

不小心把鼠标摔开了,看着里面漂亮的主板,我不禁思考原理:已经弄明白两个问题:

1、鼠标通过光感判断是否应该驱动:鼠标底部有一个洞,内部有一个弱光灯,可以通过小洞向外界散发光。与平面物体接触后,灯光无法向外部发射,于是内部光强变大,照射到光感器上,促使鼠标做好驱动准备。

2、鼠标通过齿轮进行机械传动带动滚轮滑动。

但令我百思不得其解的是:鼠标怎么知道我们把他向右移或向左移了呢?这显然不是光强能解决的问题,我不太认为一个小鼠标里安装了方向感应器。那么到底是什么原因呢? 大佬们可以答疑解惑吗?

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-03-31 00:03
    关注

    光电鼠标内部有一个发光二极管,通过它发出的光线,可以照亮光电鼠标底部表面(这是鼠标底部总会发光的原因)。此后,光电鼠标经底部表面反射回的一部分光线,通过一组光学透镜后,传输到一个光感应器件(微成像器)内成像。这样,当光电鼠标移动时,其移动轨迹便会被记录为一组高速拍摄的连贯图像,被光电鼠标内部的一块专用图像分析芯片(DSP,即数字微处理器)分析处理。该芯片通过对这些图像上特征点位置的变化进行分析,来判断鼠标的移动方向和移动距离,从而完成光标的定位。

    这就好比,你在一辆车上,看外面的景物移动的方向,就知道车的方向(相反)。
    这也就是为什么没有鼠标垫,在光洁的反射表面,鼠标就失效了(找不到参照物了)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog