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ì?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top