I haven't worked this out, but FWIW: 



Draw a vertical line from point X,Y and determine the value of y at the points, 
if any, that your line crosses each of the triangle's 3 line segments.  It 
looks as if X,Y is within the triangle if 

-- at least one intersecting point exists, and 

-- Y is not greater than the greatest y value among those existing points, nor 
less than the least y value among those existing points. 



Try sketching a few cases to see this.  If this is right, you'd need to make 3 
calls to something like 



function yOnASegment x1,y1,x2,y2,x0 

if (x0 >= x1 and x0 <= x2) or (x0<=x1 and x0>=x2) then -- the line segment 
includes x0, and we want to find y0: 

  put (y2-y1)/(x2-x1) into s -- slope; but need to provide separately for the 
case where x2=x1 

  return y1+s*(x0-x1) -- not sure I've considered all possible orderings of the 
points here, but you get the idea 

end if 

return empty -- x0 isn't on the segment 

end yOnASegment 



David Epstein
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to