2011-11-01 18 views
7

Czy istnieje sposób na wygładzenie ruchów myszy? Chcę usunąć cały mały jitter w normalnej myszy poruszającej się ręką, tak jak nigdy nie można narysować czystej linii w farbie, ponieważ robisz małe drżące ruchy.Normalizuj i wygładź ruchy myszy?

To może być trudne do zrozumienia, co mam na myśli, ale jeśli znasz Zbrush mają funkcję, która nazywa się leniwe myszy http://www.pixologic.com/docs/index.php/Lazy_Mouse im szuka sposobu, aby odtworzyć to wewnątrz mojej aplikacji. Mogę odczytać pozycję myszy za pomocą Cursor.Position, ale nie znajduję sposobu na wyrównywanie tych liczb, zanim zostaną one wysłane do wskaźnika na ekranie.

+0

to nie jest to, co robią ... nie zmieniają liczb "zanim zostaną wysłane na ekran" ... po prostu interpretują je dla tego, co pędzel maluje ... Jaki dokładnie jest twój cel? – Yahia

+1

Linia jest prosta, po prostu zapisz pierwszy i ostatni punkt. Potrzebujesz dopasowania krzywej dla bardziej skomplikowanych kształtów. Matematyka może się owłosić. –

+0

moim celem jest stworzenie małej aplikacji, która pomogłaby mi w rysowaniu za pomocą myszy, robiąc dokładnie to, co opisałem, wyceniając małe drgania dłoni podczas poruszania myszą. Zastanawiam się nad tym, gdzie mogę odebrać numery, które są wysyłane z myszy i manipulować nimi, zanim zostaną wysłane na ekran. – Darkmage

Odpowiedz

2

Jest to możliwe tylko wtedy, gdy możesz nieco opóźnić efekt ruchu myszy. Zapisujesz punkty ruchu myszy przy określonej częstotliwości, a następnie wyceniasz je na linii. Następnie użyj tej linii, aby narysować, co potrzebujesz. Nie będziesz w stanie bezpośrednio ustawić kursora myszki w uśrednionej pozycji, ponieważ wtedy otrzymasz informację zwrotną dotyczącą twojego programu jako ruch myszy.

Upewnij się, że go skompilowałeś, dzięki czemu możesz dostosować czas opóźnienia ruchu myszy i stopień agresywności uśredniania (np. Przez ograniczenie liczby punktów w nim zawartych) oraz częstotliwość, z jaką rejestrujesz ruchy myszy (to może mieć wpływ na użycie procesora, jeśli jest zbyt częste).

Będziesz oczywiście musiał stworzyć jakiś rodzaj abstrakcji dla myszy w aplikacji i stworzyć sposób, aby aplikacja mogła ją uzyskać. (Chciałbym zachować to jak najbardziej podobne do normalnych winformów/wpf, więc mogłem cofnąć zmianę i po prostu użyć ruchu myszy bezpośrednio, jeśli to konieczne).

Powiązane problemy