Was genau meinst du mit Range? Hat atan2 einen Parameter, den ich nicht kenne?
Alternativ müsste ih ja sonst immer eine Abfrage bei Umrechnen machen, oder?
(Quick 'n dirty)
Code: Alles auswählen
import sympy as sp
points = [
{'name': 'NW', 'x': 110, 'y': 210},
{'name': 'NO', 'x': 100, 'y': 205},
{'name': 'SO', 'x': 95, 'y': 195},
{'name': 'SW', 'x': 115, 'y': 190},
]
t_NW_NO = sp.atan2(points[0]['x'] - points[1]['x'], points[0]['y'] - points[1]['y'])
t_NW_NO_rad = sp.N(t_NW_NO)
t_NW_NO_gon = sp.N(t_NW_NO_rad * 200 / sp.pi)
print(f't_NW_NO = {t_NW_NO_rad} rad = {t_NW_NO_gon} gon')
t_NO_NW = sp.atan2(points[1]['x'] - points[0]['x'], points[1]['y'] - points[0]['y'])
t_NO_NW_rad = sp.N(t_NO_NW)
t_NO_NW_gon = sp.N(t_NO_NW_rad * 200 / sp.pi)
print(f't_NO_NW = {t_NO_NW_rad} rad = {t_NO_NW_gon} gon')
angles_gon = [t_NW_NO_gon, t_NO_NW_gon]
for angle in angles_gon:
if angle < 0:
print(f'SOLL: {angle + 400}')
else:
print(f'SOLL: {angle}')