Normalise orientation between 0 and 360

angle, c#, rotation

Solution

Use modulo arithmetic:

this.orientation += degrees;

this.orientation = this.orientation % 360;

if (this.orientation < 0)
{
    this.orientation += 360;
}

Problem

I'm working on a simple rotate routine which normalizes an objects rotation between 0 and 360 degrees. My C# code seems to be working but I'm not entirely happy with it. Can anyone improve on the code below making it a bit more robust? ``` 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; } } } ```

Original source