Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss19:sichtfeld_grad_alex
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)):
        print(y)
        if(viewpoint_x==points[0][0]):
            if(viewpoint_y>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)):
        print(y2)
        if(viewpoint_x==points[0][0]):
            if(viewpoint_y>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)):
        print(y)
        if(viewpoint_x==points[0][0]):
            if(viepoint_y>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)):
        print(y2)
        if(viewpoint_x==points[0][0]):
            if(viewpoint_y>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)):
        print(x)
        if(viewpoint_x==x):
            angle=90
        else:
            angle=math.atan((viewpoint_y-points[0][1])/(viewpoint_x-x))/math.pi*180
        print(angle)
        if(viewpoint_x>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)):
        print(x)
        if(viewpoint_x==x2):
            angle=90
        else:
            angle=math.atan((viewpoint_y-points[0][1])/(viewpoint_x-x2))/math.pi*180
        if(viewpoint_x>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]<x)):
        print(x)
        if(viewpoint_x==x):
            if(viewpoint_y>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]<x2)):
        if(viewpoint_x==x2):
            if(viewpoint_y>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))
ss19/sichtfeld_grad_alex.txt · Zuletzt geändert: 2019/07/03 17:11 von alexanderdross