A planned app that will run on tablets that support multitouch needs a graceful fallback for tablets and desktops which don't. I have a view onto a possibly very large 2D electron microscopy image which can be panned and zoomed. This is what I've come up with:
In more detail: Blobs are translucent and represent the finger positions. Dragging a blob moves the point directly under it. That way you can both pan and zoom. Blobs are added by clicking, but on adding a third blob you are back to no blobs. Blobs are 'in use' if the mouse is over one and the mouse button is down (and possibly moving and dragging that blob). If not used for 2 seconds, the blobs fade out, taking 0.5 seconds to do so. If you click somewhere else so that the blobs lose focus, then they vanish immediately.
The same zoom and pan method will also be used for a timeline, where naturally it will only zoom and pan in the one dimension.
I'd like suggestions that will help me get the details right.
- Is the fading out on no-use good, or should the blobs stay until some user action makes them go?
- On attempting to add a third blob should I go back to no blobs, or back to one?
- Should I for consistency show these blobs on multitouch tablets, even though they are not needed there?
I feel the rough design shows promise. I feel tweaks to it could turn it from a design that is workable, but seems a bit odd, to one that is lovely to use. I'm therefore not just interested in answers to the three specific questions, but interested in any suggestions that will make it easier, more pleasant, more intuitive to use.
EDIT 1
One specific difficulty is what to do if there are quantized values, e.g. if we only allow rotations by multiples of 15 degrees, or even not at all, or if we want to use zoom factors that are whole numbers. In those cases the blobs can't be pinned exactly to the image, and it becomes less intuitive what is going on.
I'm also concerned about discoverability. Zooming often adds + or - graphics to the cursor.
I reckon I'm going to need different modes, one mode for panning-zooming-rotating, and another mode for lasso selection. I can put a tootltip on the mode selector button which will help discoverability.
Answers so far are not helping me progress this as much as I would like, so I've held off on selecting a best answer so far.
EDIT 2
Some responders are thinking that the multitouch pan/zoom is just gestures, in the sense that a single gesture is recognized and once recognized triggers a fixed action. On the tablet the points touched follow the fingers - at least they do whilst you're touching the tablet. Pan, zoom and rotate are ballistic, i.e. movement keeps some momentum on finger up, but only if above a set speed - so it does not happen for slow/precise movements. Users tend to keep the left-mouse-button down after a quick move, and that is equivalent to not taking finger off screen, so whilst I'll have ballistic behavior for mouse use I don't think it's going to be used as much on desktops as it is on tablets.