2011-11-01 103 views
7

有沒有辦法平滑鼠標移動?我想要消除用手移動的正常鼠標中的所有小抖動,就像你無法在畫中畫出一條幹淨的線條一樣,因爲你手上的小抖動運動。正常化和平滑鼠標移動?

這可能很難理解我的意思,但如果你知道zbrush他們有一個功能,被稱爲懶惰的鼠標http://www.pixologic.com/docs/index.php/Lazy_Mouse即時尋找一種方式來重新創建我的應用程序內。我可以用Cursor.Position讀取鼠標位置,但是我沒有找到一種方法在將這些數字發送到屏幕上的指針之前將其平均。

+0

這不是他們做的......他們不會在數字「發送到屏幕前」更改數字......他們只是解釋他們的畫筆是什麼......您的目標究竟是什麼? – Yahia

+1

一條線很簡單,只記錄第一個和最後一個點。您需要曲線擬合更復雜的形狀。數學可能會變得毛茸茸的。 –

+0

我的目標是創建一個小應用程序來幫助我用鼠標進行繪製,這正是我所描述的平均移動鼠標時手抖動的小抖動。這是我想知道的,我可以從哪裏獲取從鼠標發送的數字,並在它們發送到屏幕之前對其進行處理。 – Darkmage

回答

2

這是唯一可能的,如果你可以稍微延遲鼠標移動的影響。您可以記錄鼠標在某個頻率上的移動點,然後將它們平均分配到一條線上。然後用那條線畫出你需要的任何東西。您無法將鼠標光標直接設置爲平均位置,因爲這會隨着新的鼠標移動而反饋到您的程序中。

請確保您構建它,以便您可以調整拖延鼠標移動的時間長度,以及平均的平均程度(通過限制它包含的點數)以及錄製鼠標移動的頻率(此操作如果太頻繁,可能會影響CPU使用率)。

您當然必須在應用程序中爲鼠標創建某種抽象,併爲應用程序創建一個方法來獲取它。 (我會盡量保持它與正常的winforms/wpf類似,以便我可以恢復更改,並在需要時直接使用鼠標移動)。