【问题标题】:Detect whether the mouse is touching the ground or if it is in the air检测鼠标是接触地面还是在空中
【发布时间】:2013-05-18 23:15:13
【问题描述】:

我姐姐和我正在编写一个程序来帮助患有震颤(手发抖)的人。

程序会识别鼠标光标是否变慢,然后使光标更容易控制并变慢以使颤抖的手更容易使用鼠标。

程序运行至今,只有一个问题:如果用户将鼠标移到另一个位置,速度会在短时间内为 0。程序假定光标必须放慢,但这不应该发生。

有什么方法可以检测鼠标是否接触到鼠标垫/地面?

我们正在用 C# 编程。

【问题讨论】:

  • 好问题,但不幸的是我认为这不可能
  • 我们尝试通过鼠标光标的速度来识别用户在空中举起鼠标的动作。如果一个人在颤抖,那么鼠标光标的速度几乎永远不会为0。如果鼠标在空中,则速度应该为0。不幸的是,这并没有很好地工作....
  • 一个想法:我假设如果鼠标有意停止,它首先会变慢。而如果它在空中,停止会更加突然。也许尝试检测一下?如果您已经有一个算法,它可能只是校准/改进它的问题。我建议您在各种情况下捕获鼠标速度流并从中制作图表。它会使您想要检测的行为的特征更加明显。
  • 好主意,但这也是我们的第一个猜测。我们就像你说的那样做了一个图表,但它表明速度值并没有突然停止。我们假设发生这种情况是因为用户仍在向某个方向移动,而鼠标仅悬空一半。或者,用户在到达鼠标垫的 和 时也会变慢。

标签: c# .net mouse


【解决方案1】:

您最好的选择可能是描述在这种情况下鼠标数据丢失的情况,然后让您的程序忽略匹配的移动。

例如,当鼠标被抬起时,移动是否恰好为零,而我们没有被移动?如果是这样,请忽略低于低阈值的移动。

【讨论】:

  • 我们试过了,但效果不佳。在我们为此花更多时间之前,我们想问问你们,因为你们知道的太多了,可能会有更简单的选择
  • 结果非常不一致,有时识别有效,但我们无法真正使其发挥作用。我们还尝试了最简单的方法(测量速度接近零的时间)。也许更复杂的算法可以帮助...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多