2012-03-26 10 views
7

私が持っているすべての座標系の点の座標を取得する方法は、原点座標(x、y)と原点からの角度点と原点から点までの距離?角度と距離に基づいて座標系内の点の座標を取得する方法

[px py]は、あなたが探しているポイントです
+0

コンピューティングの質問よりも数学的(代数的に)の質問が多いように聞こえます。新しいポイントを計算するのに必要な数式を知っていますか? –

+4

http://mathworld.wolfram.com/PolarCoordinates.htmlまたはhttp://en.wikipedia.org/wiki/Polar_coordinate_system –

+0

座標系の種類にもよりますが、ほとんどの場合、sinと呼ばれる単純な三角関数を使用します()、cos()である。 – hovanessyan

答えて

22

は、次のようなMath.cosMath.sinを使用しています。角度が度の場合は、例えばMath.cos(Math.toRadians(angle))を使用します。

+2

+1:実際にJavaの機能を使用しているので、私の答えではありません:) –

+0

+1は完全な答えです。 – aProgrammer

+0

3Dシステムでこれをどのように変更できますか? – helion3

2
px = x + r * cos(phi) 
py = y + r * sin(phi) 

[x y]r距離で、phiが原点からターゲットへの角度であり、「起源」です。

編集:http://en.wikipedia.org/wiki/Polar_coordinate_systemこのリンクは、Bart Kiersによって有用に投稿されました。いくつかの背景情報が得られます。 Math.cosMath.sinラジアンに与えられた引数を想定していることを

pointX = x + distance * Math.cos(angle) 
pointY = y + distance * Math.sin(angle) 

注:

3

dが距離である点のcoordnatesがあろうよりもAは、角度の場合

(X + D *コス(A)、Y + D * SIN(A))

+0

これは、ポイントが他の任意のポイント(x、y)とオフセットされていることを考慮していないため、間違っています。 @kigurai; –

+0

;それを指してくれてありがとう。コードを編集しました。それは私の心の中で私がそれを逃した方法を知っていない入力中にあった...とにかくもう一度感謝... – aProgrammer

3

r場合原点とaからの距離がx軸とを簡単に極座標から変換と座標を計算することができる点との間の角度(ラジアン)である:

x = r*cos(a) 
y = r*sin(a) 

(これは想定していその起点は(0,0)に置かれます。そうでなければ、最終結果にディスプレースメントを追加する必要があります)。

ベクトルのモジュロ(距離+角度がベクトルを作るため)と逆正接(逆正接)は、atan2関数を使用して計算できます。

r = sqrt(x*2+y*2) 
a = atan2(y,x) 
関連する問題