Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- init python:
- # попала ли точка в пределы многоугольника без самопересечений
- # именно в пределах, координаты углов и ребер не считаются
- def inPolygon(x, y, xy):
- c = False
- for i in range(len(xy)):
- 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])):
- c = not c
- return c
- label start:
- $ ppp = [(-100, 100), (100, 100), (100, -100), (-100, -100)]
- $ xxx = inPolygon(0, 0, ppp) # центр полигона
- "[xxx]"
- $ xxx = inPolygon(200, 200, ppp) # за пределами
- "[xxx]"
- return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement