atan2関数のシグネチャは次のとおりです。なぜatan2 Y、XではなくX、Yに引数がありますか? Cでは
double atan2(double y, double x);
他の言語も同様にこれを行います。これは私が知っている唯一の関数で、X、YオーダーではなくY、Xオーダーで引数をとり、座標を考えると(X、Y)と思うので定期的に私を壊します。
atan2の引数の順序の規則がこのような理由は誰にも分かりますか?
atan2関数のシグネチャは次のとおりです。なぜatan2 Y、XではなくX、Yに引数がありますか? Cでは
double atan2(double y, double x);
他の言語も同様にこれを行います。これは私が知っている唯一の関数で、X、YオーダーではなくY、Xオーダーで引数をとり、座標を考えると(X、Y)と思うので定期的に私を壊します。
atan2の引数の順序の規則がこのような理由は誰にも分かりますか?
私はarctan(y/x)に関連していると信じているので、yが上に表示されます。ここで
はそれについて少し話して素敵なリンクです: Angles and Directions時間の霧の中にいるプログラマーの中には、そんな意味合いがあると決めた人もいます。 (なぜそれは 'atan2'なのですか? 'angle_forはなぜですか?私はそれが逆正接であったと思っていました...) –
私はそれがかなり意味があると思う... – CookieOfFortune
うん、arctan arctan2がx、yを取った場合、それは常に私を台無しにするでしょう。スラッシュをコンマに変更するといいですね。 – Nosredna
から正準角を操作するときは私の仮定は、常にその
tan(theta) = opposite/adjacent
すなわち、これが原因で三角定義であるとされています原点は、反対常にYであると隣接するので、常にXです:再とは順序の混乱がないよう
atan2(opposite, adjacent) = theta
すなわち、それはそのように行われていました数学的定義へのスペクトル。
立ち上がりが.... – jlarson
Soh Cah Toaは私のニックネームです。 –
good'ol 7th gradeジオメトリ、私はまだ時々使用します。 – CookieOfFortune
、Yと呼ばれる、その反対側の矩形の三角形を想定Xと呼ばれる隣接する側:Y/X
逆正接(黄褐色の(角度))=アークタンジェント(Y/X)=(角度)
黄褐色学校では、勾配を計算するためのニーモニックが
が実行オーバー上昇である、すなわちDY/DX、以上簡単にはY/Xであるため
それはです。
そして、この順序は、逆正接関数の引数にうんざりしています。
これは歴史的な人工物です。私にとっては、私が思っていることに依存します
私が使用するときは約atan2
です。私が差異について考えているなら、私はそれを正しく得ます
私は座標ペアについて考えているなら、間違っています。
変数がdxとdyとラベル付けされているかどうかはもっと分かりますか? – CookieOfFortune
なぜこのタグは言語に依存しないものですか? –
@mgroves多くの言語で起こる –
同じフォーマットが多くの言語で表示されるためです。 atan2 wikiのエントリーから:「少なくともFORTRANプログラミング言語にまでさかのぼり、現在はCプログラミング言語のmath.h標準ライブラリ、Java Mathライブラリ、C#静的Mathクラス、およびその他の場所で使用されています。 Perlのような言語には、Cスタイルのatan2関数が含まれています。[1] " – CookieOfFortune