问题描述
使用 Google 表格,我必须用 X 和 Y 坐标计算两点之间的角度。我一直在使用 atan,当点位于两个唯一的 X 和 Y 坐标时效果很好,我得到了角度,然后我可以从那里确定它是否符合规定的标准。
我遇到的问题是当两个点都落在同一个 X 坐标上时。
TAN(theta) = Y2 - Y1 / X2 - X1
重新排列为
atan(Y2-Y1/X2-X1) = theta
对于示例点 (16,16) 和 (16,6),X2-X1 为零,然后由于分母为零,公式将无法运行。
atan2 解决了两个 Y 坐标相同的问题,但我还没有找到具有两个相同 X 坐标的解决方案。如果有人可以提供帮助,将不胜感激!
解决方法
ATAN2()
允许 2 或 1 个参数调用。
要获得完整的 [-pi...pi] 结果并处理 OP 的情况,其中 x1 == x2
,请使用 2 参数形式:
ATAN2(X2-X1,Y2-Y1)
OP 发布了 TAN(theta) = Y2 - Y1 / X2 - X1
。希望 OP 真的在做 TAN(theta) = (Y2 - Y1) / (X2 - X1)
在这种情况下,两点之间的角度只是其中一个点到 x 轴的(锐角)角度的两倍。 x 轴上的哪个点并不重要,只要它与该点在 y 轴的同一侧即可。