fork(1) download
  1. def point_inside_prlgm(x,y,poly):
  2. inside = False
  3. xb = poly[0][0] - poly[1][0]
  4. yb = poly[0][1] - poly[1][1]
  5. xc = poly[2][0] - poly[1][0]
  6. yc = poly[2][1] - poly[1][1]
  7. xp = x - poly[1][0]
  8. yp = y - poly[1][1]
  9. d = xb * yc - yb * xc;
  10. if (d <> 0):
  11. oned = 1.0 / d;
  12. bb = (xp * yc - xc * yp) * oned
  13. cc = (xb * yp - xp * yb) * oned
  14. inside = (bb >= 0) & (cc >= 0) & (bb <= 1) & (cc <= 1)
  15. return inside
  16.  
  17. print(point_inside_prlgm(1, 1, [[1, 2], [0, 0], [2, 0]]))
  18. print(point_inside_prlgm(-1, 1, [[2, 1], [0, 0], [2, 0]]))
Success #stdin #stdout 0.01s 23288KB
stdin
Standard input is empty
stdout
True
False