gpt4 book ai didi

c# - 计算水平轴和两点之间的角度

转载 作者:行者123 更新时间:2023-12-02 01:06:17 26 4
gpt4 key购买 nike

我需要计算 A 的 x 轴与 B 点之间的角度,其中 A 点是学校,B 点是学生宿舍。我有学校和所有学生的经纬度将计算水平轴和线段 [School, Student] = [A, B] 之间的所有角度。

我在 c# 中尝试了 Math.atan .. 但它计算了两点之间的角度而不考虑 x 轴

这个方法对我有帮助吗?!

余弦(阿尔法)=(纬度 B - 纬度 A)/距离(AB)

其中 alpha 是我需要找到的角度

谢谢

最佳答案

我将假设您的纵坐标表示每个点沿 x 轴的距离,而您的纬度坐标表示每个点沿 y 轴的距离。如果这是一个不正确的假设,请告诉我。

y
| (B)
| /|
| / |
| / |
| distance(AB) / |
| / | (LatB-LatA)
| / |
| / |
| / |
| /alpha |
| (A)----------
| (LonB-LonA)
|
|
|__________________________________ x
0

然后,为了找到相对于 x 轴的角度,您应该应用以下规则之一:

sin(alpha) = (LatB - LatA) / distance(AB)
cos(alpha) = (LonB - LonA) / distance(AB)
tan(alpha) = (LatB - LatA) / (LonB - LonA)

通过使用 sincostan 的倒数简单地重新排列其中一个方程,您应该能够找到 alpha 以弧度表示。例如……

alpha = Math.Asin((LatB - LatA) / distance(AB));
alpha = Math.Acos((LonB - LonA) / distance(AB));
alpha = Math.Atan((LatB - LatA) / (LonB - LonA));

关于c# - 计算水平轴和两点之间的角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22200453/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com