Perché gli argomenti di atan2 Y, X anziché X, Y?
-
20-08-2019 - |
Domanda
In C la funzione atan2 ha la seguente firma:
double atan2( double y, double x );
Anche altre lingue lo fanno. Questa è l'unica funzione che conosco che prende i suoi argomenti nell'ordine Y, X piuttosto che nell'ordine X, Y e mi rovina regolarmente perché quando penso alle coordinate, penso (X, Y).
Qualcuno sa perché la convenzione sull'ordine degli argomenti di atan2 è così?
Soluzione
Perché credo che sia correlato ad arctan (y / x), quindi y appare in cima.
Ecco un bel link che ne parla un po ': Angoli e indicazioni
Altri suggerimenti
La mia ipotesi è sempre stata che ciò sia dovuto alla definizione del trig, ovvero a
tan(theta) = opposite / adjacent
Quando si lavora con l'angolo canonico dall'origine, l'opposto è sempre Y e l'adiacente è sempre X, quindi:
atan2(opposite, adjacent) = theta
Cioè, è stato fatto in questo modo, quindi non c'è confusione nell'ordinamento rispetto alla definizione matematica.
Supponi un triangolo rettangolare con il lato opposto chiamato y, il lato adiacente chiamato x:
abbronzatura (angolo) = y / x
arctan (tan (angle)) = arctan (y / x)
È perché a scuola, il mnemonico per il calcolo del gradiente
è sorpassa , ovvero dy / dx, o più brevemente y / x.
E questo ordine è entrato negli argomenti delle funzioni arctangent.
Quindi è un artefatto storico. Per me dipende da cosa sto pensando
circa quando uso atan2
. Se sto pensando ai differenziali, ho capito bene
e se sto pensando a coppie di coordinate, ho sbagliato.