2

私がやりたいのは次のとおりです。オブジェクトがあり(青い点)、その周囲の場所に関係なく、他のオブジェクトを指し示したい(緑の点)。だから私は私が正しいことをするためにこれらの2つのオブジェクト間の角度を知る必要がありますか?

http://s13.postimage.org/6jeuphcdj/android_angle.jpg

問題は、これを達成するために何をすべきかわからないということです。私はすでにatan、math.tan、および他の多くの関数を使用しましたが、良い結果は得られませんでした。

私たちを手伝ってくれますか?前もって感謝します。

4

2 に答える 2

1

オブジェクトベクトルの内積を計算します。Math.acosあなたが得る価値に使用してください。それはあなたにラジアンの角度を与えるでしょう。

つまり、青い点がにvec1 = (50, 100)あり、緑の点がにあるとしvec2 = (100, 400)ます。

(x, y)2次元ベクトルとしてのタプルは(0, 0)、画面上のオブジェクトの位置と距離を表します。これらの2つのベクトル間の角度を見つけるには、それらに対して標準の2進内積演算を実行します。これにより、スカラー(値、)が得られますが、探している角度であるスカラー( cos(Theta))の逆が必要です。acos

あなたはここで問題についてよりよく理解することができます

于 2012-11-24T21:24:40.287 に答える
0

青と緑の点の座標がそれぞれ(xblue、yblue)と(xgreen、ygreen)であると仮定します。

青い点が緑の点を見る角度は次のとおりです。

double angleRadians = Math.atan2(ygreen-yblue, xgreen-xblue);

角度を度で表示したい場合:

double angleDegrees = Math.toDegrees(angleRadians);
于 2012-11-24T23:45:27.920 に答える