VB.Net Tutorial/Operator/Mod
Use Mod to fix degree
<source lang="vbnet">Public Class Tester
Public Shared Function FixRange(ByVal origValue As Double, _ ByVal rangeMin As Double, ByVal rangeMax As Double) _ As Double Dim shiftedValue As Double Dim delta As Double shiftedValue = origValue - rangeMin delta = rangeMax - rangeMin Return (((shiftedValue Mod delta) + delta) Mod delta) + _ rangeMin End Function Public Shared Sub Main Dim result As New System.Text.StringBuilder Dim formatDegrees As String = "Degrees: {0} Range: {1},{2} Value: {3}" Dim formatRadians As String = "Radians: {0} Range: {1},{2} Value: {3}" Dim degrees As Double Dim radians As Double Dim ranged As Double " ----- Degrees over the range. degrees = 367.75 ranged = FixRange(degrees, 0, 360) result.AppendLine(String.Format(formatDegrees,degrees, 0, 360, ranged)) " ----- Radians over the range. radians = Math.PI * 3.33 ranged = FixRange(radians, -Math.PI, Math.PI) result.AppendLine(String.Format(formatRadians, _ radians, -Math.PI, Math.PI, ranged)) Console.WriteLine(result.ToString()) End Sub
End Class</source>
Degrees: 367.75 Range: 0,360 Value: 7.75 Radians: 10.461503536454 Range: -3.14159265358979,3.14159265358979 Value: -2.10486707790516