Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检测鼠标方向的变化?_C#_.net - Fatal编程技术网

C# 如何检测鼠标方向的变化?

C# 如何检测鼠标方向的变化?,c#,.net,C#,.net,我试图检测用户何时通过鼠标拖动改变方向。想象一下检测到“震动”。检测左右“抖动”是微不足道的,但这还不足以满足我的需要。加上上上下检测也是微不足道的,它的对角线震动把我搞得一团糟 我在纸上画了这个,我想有8个方向:N,S,W,E,NW,NE,SW,SE 在非对角线上,对我来说,方向的改变只是其他方向中的3个,但在对角线上,是5个 例如,在E上,方向变化仅为NW、W和SW,但在NE上,方向变化为NW、W、SW、S和SE。除非我的想法是错的。。。但对我来说,E->S并不是方向的改变 另一个复杂因素是

我试图检测用户何时通过鼠标拖动改变方向。想象一下检测到“震动”。检测左右“抖动”是微不足道的,但这还不足以满足我的需要。加上上上下检测也是微不足道的,它的对角线震动把我搞得一团糟

我在纸上画了这个,我想有8个方向:N,S,W,E,NW,NE,SW,SE

在非对角线上,对我来说,方向的改变只是其他方向中的3个,但在对角线上,是5个

例如,在E上,方向变化仅为NW、W和SW,但在NE上,方向变化为NW、W、SW、S和SE。除非我的想法是错的。。。但对我来说,E->S并不是方向的改变

另一个复杂因素是对角线移动并不总是出现在一个事件中(即使有阈值)


有人对此有什么见解吗?

这似乎是一个XY问题。当然你可以检测到鼠标加速,但是你到底想做什么?就像我说的。。。检测鼠标“抖动”事件。如果用户在t时间内改变鼠标方向x次,则视为“抖动”。我建议您计算并平均某段时间内的
jerk
。如果平均值超过某个阈值,则触发事件。然而,我关心的是用户体验的角度。