我需要测量两个向量之间的角度。我有.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
答案 0 :(得分:2)
你的载体错了。
Lat和lon是球面角坐标。我建议您在开始之前将它们转换为3D中的直角坐标。一旦你有了那些,使用点积计算弧度的角度很容易。
你还应该知道lat和lon用度表示 - 在你开始在trig函数中使用它们之前将它们转换为弧度。
答案 1 :(得分:1)
两个向量之间的角度是Math.acos(
Dot Product )
结果是辐射,因此你乘以Math.Pi/180