Is it possible to detect the fingersize in an IOS Application?
I’ve read in the documentation:
Notes: A finger on the screen affords a much different level of
precision than a mouse pointer. When a user touches the screen, the
area of contact is actually elliptical and tends to be offset below
the point where the user thinks he or she touched. This “contact
patch” also varies in size and shape based on which finger is touching
the screen, the size of the finger, the pressure of the finger on the
screen, the orientation of the finger, and other factors. The
underlying Multi-Touch system analyzes all of this information for you
and computes a single touch point.
So, does that mean theres no possibility with the SDK to detect the physical fingersize? What I want to accomplish: I need virtual “buttons” in my OpenGL ES Application. And if someone hold the iPhone like a gamepad, he will probalbly use one finger for two buttons (rolling off the thumb). I hope its understandable what I mean…
Any ideas?
@fichek is right, there is no regular way to get the size of fingertips.
However, I had used a ‘strange’ way in my previous project to do it, and it just works 😉
1.Tell our user to put two fingers on the screen together, the closer the better(like the two-finger scrolling gesture on Mac):

2.Get the two CGPoints from UITouches in the touchesBegan:withEvent: method;
3.Now we have CGPoint fingertip1center and fingertip2center, so:
4.The fingers are really close and we may ignore the tiny difference in width , so dX == the real width of a singel finger.
5.The width(dX) and the fingertipsize are proportional, we can simply use
float fingertip_Size=M_PI*(dX/2)*(dX/2);or find a better algorithm to meet your needs 😉
6.Once we got the size (actually we only care about the diameter), its easy to implement a method to optimize touching by testing various surrounded points, e.g.:
Hope these can help!
Yichao Peak Ji