def inside_tri(tri, p): a = tri[0] b = tri[1] c = tri[2] m = (a[0] - p[0]) * (b[1] - a[1]) - (b[0] - a[0]) * (a[1] - p[1]) n = (b[0] - p[0]) * (c[1] - b[1]) - (c[0] - b[0]) * (b[1] - p[1]) k = (c[0] - p[0]) * (a[1] - c[1]) - (a[0] - c[0]) * (c[1] - p[1]) if ((m > 0) and (n > 0) and (k > 0)) or ((m < 0) and (n < 0) and (k < 0)) or (m == 0) or (n == 0) or (k == 0): return True else: return False def in_tri(tri, p): if inside_tri(tri, p): print "triag:", tri, "point:", p; return True else: return False