Alright NEVERMIND about explaining it. I spent like the past hour studying this and figured it out.
I gotta say, this is like the most brilliant function ever for this. I would have never thought of this. I understand that its something like, the relationship of area between two squares drawn to intersect at the diagonal line between them will make one square bigger than the other when your on a certain side of the diagonal line at any point along the diagonal line. Where did you get this from? Is this all your own idea or is this kind of function described elsewhere? I think this should really be standard in the pygame module. You ever consider implementing it as C in the pygame source? Or mind if someone else does? On Sep 15, 7:35 am, Ian Mallett <geometr...@gmail.com> wrote: > As used in my projecthttp://www.pygame.org/project/649/. > def pointtest(self,point): > #drawpoints is a list containing points defining your polygon > #point is the mouse position > #if it doesn't work, list them in opposite order. > #works for arbitrary convex geometry > x = point[0] > y = point[1] > Lines = [] > index = 0 > for index in xrange(len(drawpoints)): > p0 = drawpoints[index] > try: p1 = drawpoints[index+1] > except: p1 = drawpoints[0] > Lines.append([p0,p1]) > for l in Lines: > p0 = l[0] > p1 = l[1] > x0 = p0[0]; y0 = p0[1] > x1 = p1[0]; y1 = p1[1] > test = (y - y0)*(x1 - x0) - (x - x0)*(y1 - y0) > if test < 0: return False > return True > Ian