标准化和平滑鼠标移动?

时间:2011-11-01 13:01:25

标签: c# mouse

有没有办法平滑鼠标移动?我想要移除普通鼠标移动中的所有小抖动,就像你不能在画中画出一条干净的线,因为你手上做了一些小的抖动。

这可能很难理解我的意思,但如果你知道zbrush他们有一个叫做懒惰鼠标http://www.pixologic.com/docs/index.php/Lazy_Mouse的功能,我正在寻找一种在我的应用程序中重新创建这个的方法。我可以用Cursor.Position读取鼠标位置,但是我找不到在将这些数字发送到屏幕上的指针之前平均这些数字的方法。

1 个答案:

答案 0 :(得分:3)

仅当您可以稍微延迟鼠标移动的效果时才可以这样做。您以特定频率记录鼠标移动的点,然后将它们平均到一条线。然后使用该行绘制您需要的任何内容。您将无法直接将鼠标光标设置为平均位置,然后将其作为新的鼠标移动反馈到您的程序中。

确保你构建它以便你可以调整延迟鼠标移动的时间,以及平均的积极程度(例如通过限制它包含的点数),以及记录鼠标移动的频率(这是如果过于频繁,可能会影响CPU使用率。

您当然必须在应用程序中为鼠标创建某种抽象,并为应用程序创建一种获取它的方法。 (我会尽量保持这与正常的winforms / wpf尽可能相似,这样我就可以恢复更改,只需在需要时直接使用鼠标移动。)