>>112
import numpy as np
def main(a, b, c):
a, b, c = list(map(np.deg2rad, (a, b, c)))
n = np.array([0, -np.sin(a), np.cos(a)]) # normal
u = np.array([-np.cos(b) * np.sin(c), -np.cos(b) * np.cos(c), np.sin(b)]) # -incident
v = 2 * (u @ n) * n - u # reflection
elevation = np.arcsin(v[2])
azimuth = -np.arctan2(v[1], v[0]) # from east
return list(map(np.rad2deg, (elevation, azimuth)))

print(main(10, 16, 45))
print(main(10, 16, 30))