Por que são os argumentos para atan2 Y, X, em vez de X, Y?
-
20-08-2019 - |
Pergunta
Em C a função atan2 tem a seguinte assinatura:
double atan2( double y, double x );
Outros idiomas fazer isso também. Esta é a única função que eu conheço que leva os seus argumentos em Y, a fim X em vez de X, Y fim, e parafusos me regularmente, porque quando penso coordenadas, eu acho que (X, Y).
Alguém sabe por convenção fim argumento de atan2 é assim?
Solução
Porque eu acredito que ela está relacionada com arctan (/ x y), aparece de modo Y no topo.
Aqui está um link bom falar um pouco sobre isso: ângulos e direções
Outras dicas
A minha suposição tem sido sempre que isso é por causa da definição trig, ou seja, que
tan(theta) = opposite / adjacent
Quando se trabalha com o ângulo canónico a partir da origem, em frente é sempre e Y adjacentes é sempre X, assim:
atan2(opposite, adjacent) = theta
Ou seja, foi feito dessa forma por isso não há confusão de pedidos em relação à definição matemática.
Suponha um triângulo rectângulo com o seu lado oposto chamado y, laterais adjacentes chamados x:
tan (ângulo) = y / x
arctan (tan (ângulo)) = arctan (y / x)
É porque na escola, o mnemônico para o cálculo do gradiente
é aumentar ao longo prazo , ou em outras palavras dy / dx, ou mais brevemente y / x.
E esta ordem tem escapado em argumentos de funções arco tangente.
Portanto, é um artefato histórico. Para mim, isso depende do que eu estou pensando
sobre quando eu uso atan2
. Se eu estou pensando sobre diferenciais, eu entendi direito
e se eu estou pensando em pares de coordenadas, eu entendi errado.