有没有一种安全的方法,可以用最少的案例语句简单地处理角度环绕。
当使用特定的角度表示法(0-360 度或 -180 - 180 度(或等效的弧度))并在角度上进行折弯时,会发生角度包络。例如,假设您的角度为 -170,然后减去 50 度。您在数学上加起来是 -220,但实际上应该是 +140 度。
显然,您可以使用以下方法进行检查:
if (deg < -180) { 180 - abs(deg + 180); }
或类似的。但首先你需要大量的检查,其次如果你包装两次它就不起作用。
第二种普遍存在的情况是两个角度之间的插值。
例如,假设我有一个 -170 度和 160 度的角度,我想介于它们之间。一种常见的方法是,ang1 + 0.5(ang2-ang1)
但在我提供的示例中,它将导致角度为 -5 度,而它应该是 175 度。
在这些情况下是否有处理角度包络的常用方法?