oops, my bad, try this one, and I have no idea why you would want to use floats when using integer based pixel positions:
Function dot(x0,y0,x1,y1,x2,y2) Return (x1-x0)*(y2-y1)-(x2-x1)*(y1-y0) End Function Function InsideHexagon(px,py,x0,y0,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5) If dot(x0,y0,x1,y1,px,py)>0 If dot(x1,y1,x2,y2,px,py)>0 If dot(x2,y2,x3,y3,px,py)>0 If dot(x3,y3,x4,y4,px,py)>0 If dot(x4,y4,x5,y5,px,py)>0 If dot(x5,y5,x0,y0,px,py)>0 Return True EndIf EndIf EndIf EndIf EndIf EndIf End Function