Abhisek92

Polygon inside Polygon

Dec 21st, 2017
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.72 KB | None | 0 0
  1. def isLeft(line,point):
  2.     delta=1.0*(((line[1][0]-line[0][0])*(point[1]-line[0][1]))-((point[0]-line[0][0])*(line[1][1]-line[0][1])))
  3.     if delta>0:
  4.         return 1
  5.     elif delta<0:
  6.         return -1
  7.     else:
  8.         return 0
  9.  
  10. def getWindingNumber(point,polygon):
  11.     winding_number=0
  12.     for i in range(1,len(polygon)):
  13.         if polygon[i-1][1] <= point[1]:
  14.             if polygon[i][1] > point[1]:
  15.                 if isLeft([polygon[i-1],polygon[i]],point)==1:
  16.                     winding_number=winding_number+1
  17.         else:
  18.             if polygon[i][1] <= point[1]:
  19.                 if isLeft([polygon[i-1],polygon[1]],point)==-1:
  20.                     winding_number=winding_number-1
  21.     return winding_number
Add Comment
Please, Sign In to add comment