← Back to team overview

multi-touch-dev team mailing list archive

Re: Fwd: Gesture Motion Model

 

Hi Thomas,

> 
> I'm not sure I understand the formulas, you written down completely, so
> sorry if I got something wrong.  It sounds like you want to think of
> the transformation as a combination of rotate + translate.  In my
> experience it's much simpler to think of it as just a series of
> rotations around different pivots (and really the idea of translation
> only makes sense with respect to some fixed origin).  If I understand
> correctly, your describing a model for representing the gesture, I'm
> talking about specific implementation here but it still related i
> think.


Looking at rigid body motion, it is true that one can formulate such motion as
rotation about a pivot places somewhere in space, but for gestures, it is not
what we want. Scaling cannot be described with the rigid body formulation,
rotation gestures are expected to happen where the fingers are, and a concerted
motion with all fingers is expected to emit drag gestures only. To this end, it
is instrumental to change the definition of pivot from zero velocity to minimal
velocity within the convex hull of the fingers.


> The whole thing actually gets pretty easy to compute, as long as you
> limit yourself to using two contact points and you assume that you
> process events sequentially (only one contact move at a time, but this
> can be done manually even if events are reported without this
> constraint).  I'm attaching 2 illustrations I've made for
> presentations/documentation.


The grail formulation allows mapping from multiple fingers to a single
transformation matrix.


[...]

> If you want to report or think of it as translation + rotation, you

> can extract this information from the accumulated transformation.  For
> example in pymt, I apply the rotation around the stationary contact to
> a 4x4 matrix (for use in openGL), and its easy to split it into a
> translation + rotation matrix (translation vector + rotation about
> some origin). so e.g. I can access the center, and angle properties of
> the widget that implements this interaction technique to get a
> translation/rotation around center.


Translation enters here as well, in other words. ;-)

Cheers,
Henrik



References