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

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

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

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

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

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

  • 写回答

1条回答 默认 最新

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

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

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

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

报告相同问题?

悬赏问题

  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。