Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Vorremmo che tutto questo sia in qualche modo dichiarativo, e che sia basato
- su componenti di base che è possibile connettere con operatori di composizione.
- Vorremmo inoltre che il comportamento sia associato sia all'intero gesto, ma anche
- nei vari sottocomponenti.
- Come modelliamo gli eventi a basso livello?
- Come una proprietà osservabile (feature) f \in \mathbb{R}^n
- Il supporto ai gesti come insieme di feature, che può essere visto come
- un unico vettore con dimensione la somma di tutti i vettori che rappresentano
- le feature. G_s = {f_1 .. f_k}
- Lo stato di supporto dei gesti, ossia il valore delle feature ad un certo
- tempo G = {f_1(t_n), ..., f_k(t_n)}
- - Eventi a basso livello definiti come eventi ground, con eventuali condizioni
- come stato di supporto.
- - I seguenti operatori di composizione:
- Iterazione: riconosco il gesto infinite volte G*
- Sequenza: scompongo il gesto in gesti in sequenza G_1 >> G_2
- Parallelo: il gesto si compone da due gesti in contemporanea G_1 || G_2
- Scelta: il gesto si compone O da un gesto O da un altro G_1 [] G_2
- Disabilitazione: Il gesto si compone di un gesto che viene interrotto da un
- altro gesto G_1 [> G_2 (G_2 interrompe G_1)
- Order indipendence: tutti i gesti che compongono questo operatore devono
- essere eseguiti, non importa in che ordine (ad esempio per descrivere il
- gesto che prevede due tocchi da qualche parte, quindi, so solo che devono
- esserci due tocchi, ma non fisso l'ordine). G_1 |=| G_2 |=| ... |=| G_n
- Cosa ci facciamo ora?
- Possiamo cominciare a modellare il multitouch:
- features:
- - p_i: posizione 2D di n tocchi, in coordinate in pixel
- - Se il tocco non è stato ancora rilevato un valore di default (\bottom, \bottom)
- - Scorrere del tempo
- i termini ground del multitouch:
- Start_t = p_i[p_i(t-1)=(\bottom, \bottom) \cap p_i(t) \not =(\bottom, \bottom)]
- Move_t = punto prima definito poi ancora definito
- End_t = punto prima definito e poi non definito
- Deviniamo quindi il
- tap: Start_i >> End_t (sequenza)
- double tap: Start_i >> End_i >> Start_i[pos \cap timeDiff] >> End_i
- Pan: Start_i >> Move_i* [> End_i
- Slide: Start_i >> Move_i[linear \cap speed] >> End_i
- Pinch: (Start_i |=| Start_j) >> (Move_i* |=| Move_j*) [> (End_i |=| End_j)
- Rotate: (Start_i |=| Start_j) >> (Move_i[circular]* |=| Move_j*[circular]) [> (End_i |=| End_j)
- Letteratura: Kin et al. "Proton: Multitouch Gestures as Regular Expressions"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement