2016-04-14 9 views
0

2つのベクトル間の角度を測定する必要があります。ここで私は2つのベクトルJava Vector3 2つのベクトル間の角度を計算する

ここだ
double angle = firstVec.angle(secondVec); 

との間の角度を測定する方法

Vector3 firstVec = new Vector3(new Point3((float)54.90627884784906, (float)23.98023512082725, 0), 
        new Point3((float)54.90568158443394, (float)23.98021489919758, 0)); 

Vector3 secondVec = new Vector3(new Point3((float)54.90568158443394, (float)23.98021489919758, 0), 
        new Point3((float)54.9055211876991, (float)23.97995622451836, 0)); 

:私は私のベクトルを作った方法だからここ

54.90627884784906, 23.98023512082725 
54.90568158443394, 23.98021489919758 
54.9055211876991, 23.97995622451836 
... 

をLatitutesで満たされ、longitutesさ.kmlファイルを持っています私の結果:

0.9824845194816589 

ここに、これらの座標を表す私の電話のイメージ画像があります。 enter image description here 明らかに私のアングルは正しくありません。それを計算する方法?

+0

を掛けたい、radiantsにあるのですか? – fabian

+0

@fabian私はbeyondArフレームワークからクラスを使用していました。他の選択肢はありますか? – David

答えて

1

あなたのベクターは間違っています。

Latとlonは球面角度の座標です。始める前に3Dで直角座標に変換することをお勧めします。それらを取得したら、ドットプロダクトを使用して角度をラジアンで計算するのは簡単です。

また、latとlonは度で表現されています - trig関数で使用する前にラジアンに変換してください。 2つのベクトルとの

0

角度はMath.acos(Dot Product)結果は、このようにあなたは何 `Vector3`クラスを使用しているMath.Pi/180

関連する問題