Всегда используйте atan2 (y, x) вместо atan (y / x) по двум причинам. Один из них упоминается Дэвидом Маймудесом (проблемы с x = 0). Другое дело, что atan2 () работает с полным диапазоном от - & pi; to + & pi ;, тогда как atan () выдает только выходные данные между - & pi; / 2 и + & pi; / 2, и не может различить (x, y) = (2,2) и (x, y) = ( -2, -2) поскольку вы теряете информацию о знаке при делении и передаете только отношение y / x в atan ().