c# - 在 C# 中查找鼠标的速度

标签 c# winforms winapi mouseevent

如何在鼠标释放的准确 时刻找到鼠标的瞬时垂直速度?我让用户拖动自定义控件,当他们释放时,我需要知道此信息,以便我可以使用速度的垂直分量继续他们拖动的对象...

例如,如果他们以一定角度拖动,请使用三角函数确定垂直速度,然后使用它......

我不能随时间推移做距离,因为鼠标可以以不规则的速度移动,这根本不代表正确的速度。

我在想我可以使用的 MouseMove 触发器之间可能有一个特定的间隔,但我不确定。

最佳答案

How can i find the instantaneous vertical speed of the mouse at the exact moment that the mouse is released?

你不能。正如芝诺几个世纪前明确指出的那样,速度只在一段时间内才有意义。如果我必须这样做,我可能会使用加权移动平均线,因此(例如)我计算了最后 5 条鼠标移动消息中每条消息的距离/时间,但它们的重要性随着时间的推移而“衰减”。例如,我可能会将最近的乘以 1,将下一个乘以 0.8,再将下一个乘以 0.6,依此类推。这样,如果(例如)他们恰好在释放按钮时减慢(或加快)运动,您仍然可以合理地估计他们在那之前正在做什么。

关于c# - 在 C# 中查找鼠标的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4841431/

相关文章:

c# - 重新定位列表中的项目

winapi - 如何用WINAPI检查文件路径是磁盘还是文件或目录?

c++ - 如何使用 win32 api 获取域用户帐户列表?

windows - 触发 Windows UAC 提示时是否有 WinAPI 消息?

c# - 下拉列表错误

c# - System.Net.HttpWebRequest.GetResponse() 错误 "ResponceSystem.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel"

C#:在 .NET 库中,是否有可以查看和打印 RTF 字符串的标准类?

c# - 如何用C#设计一个全屏应用程序?

c# - MVC3 字典未绑定(bind)到模型

SQL如何格式化包含聚合或子查询的时间