Advertisement
barsunduk

renpy point in polygon

May 5th, 2016
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.79 KB | None | 0 0
  1. init python:
  2.     # попала ли точка в пределы многоугольника без самопересечений
  3.     # именно в пределах, координаты углов и ребер не считаются
  4.     def inPolygon(x, y, xy):
  5.         c = False
  6.         for i in range(len(xy)):
  7.             if (((xy[i][1] <= y and y < xy[i - 1][1]) or (xy[i - 1][1] <= y and y < xy[i][1])) and (x > (xy[i - 1][0] - xy[i][0]) * (y - xy[i][1]) / (xy[i - 1][1] - xy[i][1]) + xy[i][0])):
  8.                 c = not c
  9.         return c
  10. label start:
  11.     $ ppp = [(-100, 100), (100, 100), (100, -100), (-100, -100)]
  12.     $ xxx = inPolygon(0, 0, ppp) # центр полигона
  13.     "[xxx]"
  14.     $ xxx = inPolygon(200, 200, ppp) # за пределами
  15.     "[xxx]"
  16.     return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement