import math x=0 x2=13 y=0 y2=12 dist =((x-x2)**2+(y-y2)**2)**(1/2) alpha = math.atan((y-y2)/(x-x2))/math.pi*180 if(x>x2): alpha+=180 x+=dist*math.cos(alpha/180*math.pi) y+=dist*math.sin(alpha/180*math.pi) sight=5 size=10 print(round(x)) print(round(y)) points=[[5,15],[15,15],[5,25],[15,25]] viewpoint_x=round(x) viewpoint_y=round(y) if(1==1): points2=[] angles=[] for point in points: if(sight**2<((viewpoint_x-point[0])**2+(viewpoint_y-point[1]**2))): if(viewpoint_x==point[0]): if(viewpoint_y>point[1]): angle=270 else: angle=90 else: angle=math.atan((viewpoint_y-point[1])/(viewpoint_x-point[0]))/math.pi*180 print(angle) if(viewpoint_x>point[0]): angle+=180 elif(angle<0): angle+=360 angles.append(angle) y=(-(-((sight**2)-(viewpoint_x-points[0][0])**2)**(1/2)-viewpoint_y)) y2=(-(((sight**2)-(viewpoint_x-points[0][0])**2)**(1/2)-viewpoint_y)) print(y) print(y2) if((sight**2>(viewpoint_x-points[0][0])**2)and points[0][1]+size>y and(points[0][1]y): angle=270 else: angle=90 else: angle=math.atan((viewpoint_y-y)/(viewpoint_x-points[0][0]))/math.pi*180 print(angle) if(viewpoint_x>points[0][0]): angle+=180 elif(angle<0): angle+=360 print(angle) angles.append(angle) if(sight**2>(viewpoint_x-points[0][0])**2 and points[0][1]+size>y2 and(points[0][1]y2): angle=270 else: angle=90 else: angle=math.atan((viewpoint_y-y2)/(viewpoint_x-points[0][0]))/math.pi*180 if(viewpoint_x>points[0][0]): angle+=180 elif(angle<0): angle+=360 print(angle) angles.append(angle) y=(-(-((sight**2)-(viewpoint_x-points[1][0])**2)**(1/2)-viewpoint_y)) y2=(-(((sight**2)-(viewpoint_x-points[1][0])**2)**(1/2)-viewpoint_y)) print(y) print(y2) if((sight**2>(viewpoint_x-points[1][0])**2)and points[1][1]+size>y and(points[1][1]y): angle=270 else: angle=90 else: angle=math.atan((viewpoint_y-y)/(viewpoint_x-points[1][0]))/math.pi*180 print(angle) if(viewpoint_x>points[1][0]): angle+=180 elif(angle<0): angle+=360 print(angle) angles.append(angle) if((sight**2>(viewpoint_x-points[1][0])**2)and points[0][1]+size>y2 and(points[0][1]y2): angle=270 else: angle=90 else: angle=math.atan((viewpoint_y-y)/(viewpoint_x-points[0][0]))/math.pi*180 if(viewpoint_x>points[0][0]): angle+=180 elif(angle<0): angle+=360 print(angle) angles.append(angle) x=(-(-(((sight**2)-(viewpoint_y-points[0][1])**2)**(1/2))-viewpoint_x)) x2=(-(((sight**2)-(viewpoint_y-points[0][1])**2)**(1/2)-viewpoint_x)) print(x) print(x2) if((sight**2>=(viewpoint_y-points[0][1])**2)and points[0][0]+size>x and(points[0][0]x): angle+=180 elif(angle<0): angle+=360 print(angle) angles.append(angle) if((sight**2>(viewpoint_y-points[0][1])**2)and points[0][0]+size>x2 and(points[0][0]x2): angle+=180 elif(angle<0): angle+=360 print(angle) angles.append(angle) x=(-(-((sight**2)-(viewpoint_y-points[2][1])**2)**(1/2)-viewpoint_x)) x2=(-(((sight**2)-(viewpoint_y-points[2][1])**2)**(1/2)-viewpoint_x)) print(x) print(x2) if((sight**2>=(viewpoint_y-points[2][1])**2)and points[2][0]+size>x and(points[2][0]points[2][1]): angle=270 else: angle=90 else: angle=math.atan((viewpoint_y-points[2][1])/(viewpoint_x-x))/math.pi*180 if(viewpoint_x>x): angle+=180 elif(angle<0): angle+=360 print(angle) angles.append(angle) if((sight**2>=(viewpoint_y-points[2][1])**2)and points[2][0]+size>x2 and(points[2][0]points[2][1]): angle=270 else: angle=90 else: angle=math.atan((viewpoint_y-points[2][1])/(viewpoint_x-x2))/math.pi*180 if(viewpoint_x>x): angle+=180 elif(angle<0): angle+=360 print(angle) angles.append(angle) print(angles) if(max(angles)-min(angles)>250): for angle in angles: if(angle>250): angle=angle-360 #return((max(angles)-min(angles)/viewangle) print(max(angles)-min(angles))