Reputation: 179
I'm trying to do research on how accurate people can draw on a touch screen device. I'm wondering when your finger touches the screen, there should be a range of points touched by your finger instead of one (as it should be tow surfaces next to each other) . So my question is how does Android (or IOS) decide which of these points should be the one that is considered to be touched by OS?
Upvotes: 3
Views: 602
Reputation: 6925
There are two types of touches
1) Capacitive touch
2) Resistive touch
You should read about them.
How resistive touch. works.
How Capacitive touch works.
How touchscreen technologies work.
Upvotes: 1
Reputation: 974
They use subpixel interpolation to decide the peak. The data collected by the controller looks like this
In the above figure, the finger touched sensor x0,x1 and x2 on rows and y0,y1 and y2 on columns. If you see the figure above, the true peak should lie between x1 and x2 for rows and y1 and y2 for columns. Therefore you can fit these 3 readings for rows in a Parabola and find out the maximum of a Parabola using this formula
Here r(i-1) will be x0, r(i) will be x1 and r(i+1) will be x2. using this formula the controller can correctly determine the peak location of the finger touch. However different controllers use different formulas for interpolation. Some use Center of Mass and some use Gaussian, but the basic concept is the same.
Thanks
Upvotes: 1