def interno(poligono,pto):
#poligono orientato in senso orario
somma=0
for i in range(0,len(poligono)-1):
v1=poligono[i]
v2=poligono[i+1]
rlv1=math.atan2((v1[1]-pto[1]),(v1[0]-pto[0]))
if rlv1<0:rlv1=2*math.pi+rlv1
rlv2=math.atan2((v2[1]-pto[1]),(v2[0]-pto[0]))
if rlv2<0:rlv2=2*math.pi+rlv2
angolo=math.copysign(rlv2-rlv1,1)
if angolo>math.pi:
angolo=2*math.pi-angolo
somma=somma+angolo
if somma<2*math.pi:
Interno=False
else:
Interno=True
return Interno
评论列表
文章目录