Hvorfor er argumentene for å ATAN2 Y, X i stedet for X, Y?

stemmer
20

I C atan2 funksjonen har følgende signatur:

double atan2( double y, double x );

Andre språk kan dette også. Dette er den eneste funksjonen jeg vet om som tar sine argumenter i Y, X for heller enn X, Y orden, og det skruer meg opp jevnlig fordi når jeg tenker koordinater, tror jeg (X, Y).

Vet noen hvorfor atan2 argument for konvensjonen er på denne måten?

Publisert på 25/06/2009 klokken 18:58
kilden bruker
På andre språk...                            


5 svar

stemmer
23

Fordi jeg tror det er relatert til arctan (y / x), så y vises på toppen.

Her er en fin kobling snakke om det litt: Angles og Veibeskrivelse

Svarte 25/06/2009 kl. 19:01
kilden bruker

stemmer
11

Min antakelse har alltid vært at dette er på grunn av trig definisjon, det vil si at

tan(theta) = opposite / adjacent

Når man arbeider med den kanoniske vinkel fra origo, er motsatt alltid Y og tilstøtende er alltid X, så:

atan2(opposite, adjacent) = theta

Dvs, det ble gjort på den måten, så det er ingen bestilling forvirring med hensyn til den matematiske definisjonen.

Svarte 25/06/2009 kl. 19:04
kilden bruker

stemmer
1

Anta et rektangel trekant med sin motsatt side kalt y, ved siden heter x:

tan (vinkel) = y / x

arctan (tan (vinkel)) = arctan (y / x)

Svarte 25/06/2009 kl. 19:06
kilden bruker

stemmer
0

Det er fordi i skolen, mnemonic for beregning gradienten
er stigning under løp , eller med andre ord dy / dx, eller flere kort y / x.

Og denne ordren har sneket seg inn argumentene til arctangent funksjoner.

Så det er en historisk gjenstand. For meg avhenger det av hva jeg tenker
på når jeg bruker atan2. Hvis jeg tenker på differensialer, jeg får det til
, og hvis jeg tenker på koordinatpar, jeg får det galt.

Svarte 25/06/2009 kl. 19:38
kilden bruker

stemmer
0

Ordren er atan2 (X, Y) i excel så jeg tror motsatt rekkefølge er et programmerings ting. atan (Y / X) kan enkelt endres til ATAN2 (Y, X) ved å sette en '2' mellom 'n' og '(', og å erstatte '/' med en '', er det bare to operasjoner. den motsatte rekkefølge vil ta 4 operasjoner og noen av operasjonene vil være mer kompleks (klipp og lim).

Jeg jobber ofte ut min matte i Excel så port den til .NET, så vil bli hengt opp på atan2 noen ganger. Det ville være best hvis atan2 kan standardiseres en eller annen måte.

Svarte 28/08/2019 kl. 01:58
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more