鉴于我有两个真正的轴承作为起始轴承 315 度和一个 45 度的端轴承,有没有更好的方法来确定两个真实轴承之间的角度? 当起始轴承大于端部轴承时,就会出现并发症。 我有以下有效的方法,但我认为有一种更好/数学的方法。
double tStartBearing = 315;
double tEndBearing = 45;
double tAngle;
if (tStartBearing > tEndBearing) {
tAngle = tStartBearing - tEndBearing - 180;
} else {
tAngle = tEndBearing - tStartBearing;
}
预计 tAngle 的结果值为 90。 考虑起始方位角为 0,端部方位角为 359.9,tAngle 的结果值应为 359.9,而不是 0.1。
(有符号的(角度总是end - start
.假设起点和终点角都在[n, n + 360)
的同一范围内,它们之间的差异将在(-360, 360)
之间。
要将差值归一化为范围[0, 360)
中的正角,请使用:
tAngle = (tEndBearing - tStartBearing + 360) % 360;
要将差值归一化为范围[-180, 180)
中的有符号角度,请改为使用:
tAngle = (tEndBearing - tStartBearing + 360 + 180) % 360 - 180;
无论起始角度小于结束角度,还是相反,上述工作。