2013-05-18 9 views
8

Mia sorella e io stiamo scrivendo un programma per aiutare le persone che soffrono di tremore (tremando nelle mani).Rileva se il mouse tocca il suolo o se è nell'aria

Il programma riconosce se il cursore del mouse diventa più lento e quindi rende il cursore più facile da controllare e più lento per rendere più semplice l'uso del mouse con mani tremanti.

Il programma funziona finora e vi è un solo problema: se l'utente solleva il mouse in un'altra posizione, la velocità è 0 per un breve intervallo di tempo. Il programma presuppone che il cursore debba essere rallentato, ma questo non dovrebbe accadere.

C'è un modo per rilevare se il mouse sta toccando il tappetino del mouse/terra?

Stiamo programmando in C#.

+0

Buona domanda, ma non penso sia possibile sfortunatamente – craig1231

+1

Abbiamo provato a riconoscere il movimento dell'utente che solleva il mouse in aria dalla velocità del cursore del mouse. Se una persona sta tremando, la velocità del cursore del mouse non sarà quasi mai 0. Se il mouse è in aria, la velocità dovrebbe essere 0. Sfortunatamente non ha funzionato molto bene ... –

+2

Un'idea: presumo che se il mouse si ferma intenzionalmente, ha rallentato prima. Mentre se è in aria, la fermata sarebbe più brusca. Forse provi a scoprirlo? Se hai già un algoritmo per questo, potrebbe essere solo questione di calibrarlo/perfezionarlo. Ti suggerisco di catturare un flusso di velocità del mouse in varie situazioni e ricavarne un grafico. Renderà le caratteristiche attorno al comportamento che vuoi rilevare più ovvio. –

risposta

1

Probabilmente la soluzione migliore è quella di caratterizzare la perdita di dati del mouse come in questo caso, e quindi fare in modo che il programma ignori il movimento corrispondente.

Ad esempio, il movimento è esattamente esattamente zero quando il mouse viene sollevato e non viene spostato? In tal caso, ignorare i movimenti sotto una soglia bassa.

+0

Abbiamo provato, ma non ha funzionato così bene. E prima che avessimo usato più tempo per quello, volevamo chiederti ragazzi perché ne sapete così tanto e potrebbe esserci un'opzione più semplice –

+0

Cosa intendete quando affermate che non ha funzionato bene? –

+0

I risultati sono stati molto inconsistenti, a volte il riconoscimento ha funzionato ma non siamo stati in grado di farlo funzionare. Abbiamo anche provato nel modo più semplice (misurando per quanto tempo la velocità era prossima allo zero). Forse un algoritmo più complesso potrebbe aiutare ... –