[英]Java Vector3 calculate angle between two vectors
我需要測量兩個向量之間的角度。 我有充滿緯度和經度的.kml
文件
54.90627884784906, 23.98023512082725
54.90568158443394, 23.98021489919758
54.9055211876991, 23.97995622451836
...
所以這是我制作矢量的方式:
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));
這是我如何測量兩個向量之間的角度
double angle = firstVec.angle(secondVec);
這是我的結果:
0.9824845194816589
您的向量是錯誤的。
緯度和經度是球面角度坐標。 我建議您在開始之前將它們轉換為3D直角坐標。 一旦有了這些,就可以使用點積輕松計算以弧度為單位的角度。
您還應該知道lat和lon以度數表示-在開始在trig函數中使用它們之前將其轉換為弧度。
兩個向量之間的夾角為Math.acos(
點積 )
結果以Math.Pi/180
為單位,因此您要乘以Math.Pi/180
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.