I whipped up a small example to test a solution for you. It looks like it works, so hopefully it's what you're looking for. <img src="smileys/smiley1.gif" border="0" align="middle" />
db.tt/FmppZj3f
I placed a bunch of invisible squares around the smiley, each with a private variable called "Visible". When the TouchPoint object overlaps each square, its variable gets set to 1 -- meaning it's now visible -- and added to a global variable keeping track of how many can be seen. When it's over a certain number (right now it's set to 22, out of 24 squares total I think), you can say that the smiley itself is now almost completely uncovered.
Of course, the finer details are up for adjustment. You can change the number of invisible squares, or their placement, or how many need to be uncovered before you declare the smiley itself visible. Lemme know if I didn't explain it well enough. <img src="smileys/smiley5.gif" border="0" align="middle" />