【发布时间】:2011-07-13 14:17:28
【问题描述】:
我有一个算法可以计算物体旋转的量。
它计算 -180 到 180 度之间来处理顺时针和逆时针。但是,当旋转大约 180 度时,由于舍入,在比较形状的不同部分时最终会检测到 -180 度和 180 度旋转的混合,这取决于舍入的发生方式,这会将实际旋转抛出很多。答案是使用绝对值,但这最终会破坏旋转方向。
这里是代码
double newAngle = objOneAngle - objTwoAngle;
if (newAngle< -180)
newAngle += 360;
else if (newAngle > 180)
newAngle -= 360;
对增强上述代码以处理 180 度旋转的最佳方法有什么想法吗?
编辑: 想到的最明显的方法是将正负值分开,然后根据大小或其他一些指标选择最佳集合,但必须有更简单更优雅的解决方案?
【问题讨论】: