[-1, 1]とinのタプル(x, y)
があります。タプルは、任意の方向への動きを表します。これを 360 度の角度に変換したいと思います。0 は北を表します。x
y
質問する
7591 次
4 に答える
15
「北」が何を意味するか、つまり、どの軸に沿って、角度がどの方向に向かうかによって、次のコードが問題の解決策になるはずです。
math.atan2(y,x)/math.pi*180
これにより、x軸に沿って「北」で反時計回りに、原点からのポイント(x、y)の角度が得られます。
于 2012-08-20T13:38:34.620 に答える
7
解決策はありませんが、正しい方向に向けてください。ほとんどのプログラミング言語には と呼ばれる関数がありatan2
、入力として x と y の値を取り、点と正の x 軸の間の角度をラジアン単位で計算します。象限の問題を自動的に処理します。
于 2012-08-20T13:36:20.887 に答える
3
数学は以下の通りです。
日焼け = 反対/隣接。(あなたの場合はそれぞれyとx)。
arctan(r) = 角度、与えられた反対側と隣接側の比率 r。
arctan2 は arctan に似ていますが、象限の問題を処理します。
これが直角三角形のすべてであることを付け加えておきます。
wikipedia から取得した Atan2 の厳密な定義:
于 2012-08-20T13:45:04.960 に答える
0
これは、セグメントを形成する任意の 2 点に対して一般的に行うこともできます。
segment = ((x1, y1), (x2, y2))
from math import *
angle = degrees(atan((x2 - x1) / (y2 - y1)))
象限の問題を確認することを忘れないでください
于 2012-08-20T13:36:49.473 に答える