如何在鼠标释放的准确 时刻找到鼠标的瞬时垂直速度?我让用户拖动自定义控件,当他们释放时,我需要知道此信息,以便我可以使用速度的垂直分量继续他们拖动的对象...
例如,如果他们以一定角度拖动,请使用三角函数确定垂直速度,然后使用它......
我不能随时间推移做距离,因为鼠标可以以不规则的速度移动,这根本不代表正确的速度。
我在想我可以使用的 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/