В C функция atan2 имеет следующую подпись:
double atan2( double y, double x );
Другие языки делают это также. Это единственная из известных мне функций, которая принимает аргументы в порядке Y, X, а не в порядке X, Y, и регулярно меня облажает, потому что, когда я думаю о координатах, я думаю (X, Y).
Кто-нибудь знает, почему соглашение о порядке аргументов atan2 такое?