Cheapo Multi-Touch


M. Ulrich

Still Fresh
Joined
Mar 19, 2010
Messages
2
I wonder if someone could enlighten me as to exactly what happens when you press more than one digit on the pandora screen....

I have heard a few rumors on what happens if you push (for example) two digits on a resistive touch screen

1. Masking i.e. you will see either one digit or the other in some random fashion depending on where the digits are pressed
2. Error i.e. no coordinate is returned or some other coordinate that is not related to either digit is returned
3. Average i.e. you get the average coordinate back i.e. somewhere between the two digits

I was hoping that the third case would be the result of multi-digit contact on the pandora screen.

i.e. some kind of average.

If this turns out to be the case I believe that by using some clever vector math it should be possible to infer the position of the two digits with a reasonable degree of accuracy.

Why am I hoping for this?

Well, if that turns out to be the case we can implement a fairly crude variant of pinch-to-zoom like on the iphone.

So....

Anyone with actual hardware on their hands, what happens when you press multiple locations on the touch screen at once?
 
I can, by telling from the look of the screen and from having seen many such screens in my life (pun verily intended), infer that something between 1 and 3 will be observed. (Oh god, I gotta get off the Internet; these memes are killing me)
In other words: there'll be one concrete data point that is produced by the screen/driver, and that data point will be positioned at roughly the average point of pressure on the screen. So, if you press on the screen with equal force with three fingers, the detected point will be in the middle of those 3 fingers, and if you use two fingers, and press down one finger twice as hard as the other, the data point will be distributed ⅓ and ⅔ along the way, respectively, provided that the screen doesn't break from the pressure.

However, I don't see how this could be used to introduce multi-touch functionality in software on the Pandora. To clarify why this would be impossible, imagine the following situation:
You use two of your fingers, and put them down at a distance of 2 cm away from the point P using equal pressure. Now, you turn your hand so that both fingers retain their distance to P and always use the same pressure. Thus, your fingers will have moved, but the unit won't have detected any movement whatsoever. This is of course a worst-case scenario, and by using extrapolated sweep recognition, it might be possible to do some magic in some situations, but in most cases, it simply won't be possible to emulate a multi touch screen on the Pandora.
 
It all depends on what your starting point is.

This is my thinking:

Press one digit down... so for this digit you actually know where it is.

Then a fraction of a second later press the second digit down.

If we have something that resembles an average, in that case we know roughly where the second digit is from the placement of the first digit
i.e. double the vector distance from the starting point of the first digit and the average of the two digits.

If the first digit remains roughly where it is, the average can then be used to get a crude estimate of the pinching action.

...I did not say proper pinch to zoom but a cheapo approximation....

but as I said, this only works if indeed the returned coordinate from multi-digit-touch is an average, if not the math does not work.
 
This has been mentioned before, and yes, it would work, especially if there was some feedback from the UI (e.g. an "anchor" aka a circle, or something, that appears as you put down the first finger). But is there a valid use case for this? I think not. When would you really prefer to pinch-zoom instead of using one of the infinite finitely countable input methods available for the Pandora (nubs, keys, D-Pad, shoulder buttons, or any combination of these)
 
But you would still have the Problem that there is no way to distinguish between second finger and movement of the first...
 
I probably don't know enough about touch screens to really be commenting, but I would theorize that a similar gesture might be possible. If your first finger was pressed for, say, a second or two, an anchor point could be created, and your second finger would create a distance from said anchor. I don't think that you'd be able to pinch both fingers at once, but moving your second finger toward or away from the anchor point seems like a possibility for zooming in and out.

Of course, for it to be of any real use, I would think it requires a program that would really take advantage of this and allow for fine-tuned scalability in images. (It would be nice to control Google Maps or something in such a manner.) Said imaginary imaging program could also implement swipes to move from picture to picture, like an app on the Droid or iPhone, and programming that would probably be a good first step.

Obviously if this could even be done it would be quite a lot of work and depending on the quality of the smooth motions may or may not be worth it. I would definitely give such a program a whirl, though.
 
Qt does already have support for touchscreen dynamics (multi-touch and single-touch). It's literally just about hooking up the right signals to the right slots.
 
We actually discussed this not too long ago. I explained the underlying workings of a resistive touch sensor and concluded that pinch-to-zoom is very feasible, but it's best if you use raw sensor data instead of making guesses with the mouse pointer location. Apparently Synaptics has implemented this in their latest drivers, so I'm totally not loony. Of course, I doubt our touchscreen is a Synaptics product, so we would have to code it ourselves, and I don't even know where to start on that. I keep hoping that someone else does.
 
Last edited by a moderator:
Back
Top