【发布时间】:2021-07-03 10:35:54
【问题描述】:
我正在研究一个简单的旋转例程,它将对象旋转标准化为 0 到 360 度。我的 C# 代码似乎可以正常工作,但我对它并不完全满意。任何人都可以改进下面的代码使其更加健壮吗?
public void Rotate(int degrees)
{
this.orientation += degrees;
if (this.orientation < 0)
{
while (this.orientation < 0)
{
this.orientation += 360;
}
}
else if (this.orientation >= 360)
{
while (this.orientation >= 360)
{
this.orientation -= 360;
}
}
}
【问题讨论】:
-
仅适用于偶然发现这些神奇解决方案的任何人。我已经测试了其中的几个,以获得真正的 0-360 值。使用可以在 +/- 数千范围内给出值的陀螺仪 enzuguri 的解决方案可以实现这一点! Saad Ahmed 和 QBziZ 的解决方案在输入 -10 时产生 -10;不是我期望的350。希望这对 JC 有帮助