Leap Mouse – Qt Sample

5月底的时候,用Leap Motion模拟了一下鼠标。用很简单的代码实现了比较简单粗糙的功能(移动,左键单击和右键单击)。基本上是能满足最简单的操作了,但是由于精度太高,过于灵敏,使得特别容易误操作。
当然我的最终目的并不是做出一个鼠标来,因为那样手实在太累了。官方博客里曾经有一篇写给开发者和用户的文章,大体内容是在说,这个设备能做的事远远超过简单的鼠标操作和触屏操作,所以不要把思维限制在这上面。想想,说的很对。就这设备目前能做得东西已经远远超过鼠标和触摸屏,但是很多操作体验上远远不如这两者好用。

进入正题,简单说一下这个鼠标的功能是怎么实现的。

1.模拟鼠标移动(MOVE)
a.先获取特定手指映射在屏幕上的坐标。
b.利用Windows API的mouse_event()函数,让鼠标进行绝对位移移动到相应的屏幕位置。

2.模拟鼠标左键单击(LEFT)
a.检测手指Touch Distance的值(即手指离触摸仿真面的距离,值域[-1,+1])。
b.若touchDistance()<=0,执行mouse_event()里的LEFTDOWN,模拟鼠标左键按下。 c.若touchDistance()>0,执行mouse_event()里的LEFTUP,模拟鼠标左键松开。

3.模拟鼠标右键单击(RIGHT)
检测到Circle手势时,在Circle手势的圆心坐标处执行mouse_event()里的RIGHTDOWN和RIGHTUP。

如无注明,均为原创。转载请注明: 转载自MITGAI`S THINKING
本文链接地址: Leap Mouse – Qt Sample

知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

如果本文对您生活或工作产生了积极影响,那我非常高兴。
如果您愿意为文章的内容或想法提供支持,欢迎点击下边的捐赠按钮,资助作者创作更多高价值高品质的内容。
支付宝捐赠
anyShare分享到:

发表评论