我想找到两个位置相对于第三个位置的角度

时间:2015-04-20 07:37:52

标签: android location maps angle

There are three location on map. Location A , Location B and Location C.

地图上有三个位置。位置A,位置B和位置C.

我只有三个位置的纬度和经度。

现在我想在 android map <中找到关于“A”“C”的角度“ B ” /强>

请帮帮我。

1 个答案:

答案 0 :(得分:1)

请参阅此示例link

在伪代码中,程序或多或少是这样的:

假设A,B和C是具有x和y分量的2D矢量。

//compute vectors ba and bc
ba = A-B
bc = C-B
//normalize the vectors (divide by the length)
ban = ba / sqrt(ba.x*ba.x + ba.y*ba.y)
bcn = bc / sqrt(bc.x*bc.x + bc.y*bc.y)
//compute the cosinus of the angle using the dot-product
cosAngle = ban.x * bcn.x + ban.y * bcn.y
//compute the angle
angle = acos(cosAngle)

注意: 当你减去两个向量时,减去各个坐标:

ba.x = A.x - B.x
ba.y = A.y - B.y

通过标量对矢量进行划分是类似的:

ban.x = ba.x / length
ban.y = ba.y / length