Почему −π ‹atan2 (y, x) ≤ π, а для прямых нам действительно нужно только от 0 до π?

Возможный дубликат:
в чем разница между atan и atan2 в c ++?

Почему −π ‹atan2 (y, x) ≤ π, в то время как для строк нам действительно нужно только от 0 до π, и что имеет api, как atan2, но возвращает от 0 до pi?


person Rella    schedule 12.02.2011    source источник
comment
возможный дубликат в чем разница между atan и atan2 в c ++?. В названии есть c ++, но все ответы применимы к любому языку, который предоставляет atan и atan2.   -  person Flexo    schedule 12.02.2011


Ответы (2)


Одним из распространенных применений atan2 является преобразование декартовых координат в полярные координаты. И то, что он поддерживает все углы, является причиной его существования. В противном случае вы могли бы просто использовать atan(y/x).

person CodesInChaos    schedule 12.02.2011
comment
Обратите внимание, что atan2() обрабатывает случаи, когда x == 0.0 правильно, а atan(y/x) нет! - person Jonathan Leffler; 13.02.2011

atan2 возвращает все возможные углы, потому что он не используется только для рисования линий! Он также используется для реальной математики, где разница важна. atan, с другой стороны, выдает результат в виде [-pi / 2, + pi / 2].

person Oliver Charlesworth    schedule 12.02.2011
comment
+1 актуальная математика действительно имеет значение :-) - person Klaus Byskov Pedersen; 12.02.2011