diff --git a/src/ImageSharp/Colors/Spaces/Conversion/Implementation/CieLch/CieLabToCieLchConverter.cs b/src/ImageSharp/Colors/Spaces/Conversion/Implementation/CieLch/CieLabToCieLchConverter.cs
index 075aed500..8306d3cfd 100644
--- a/src/ImageSharp/Colors/Spaces/Conversion/Implementation/CieLch/CieLabToCieLchConverter.cs
+++ b/src/ImageSharp/Colors/Spaces/Conversion/Implementation/CieLch/CieLabToCieLchConverter.cs
@@ -23,11 +23,11 @@ namespace ImageSharp.Colors.Spaces.Conversion.Implementation.CieLch
float hRadians = MathF.Atan2(b, a);
float hDegrees = MathF.RadianToDegree(hRadians);
- if (hDegrees > 360)
- {
- hDegrees -= 360;
- }
- else if (hDegrees < 0)
+ // Wrap the angle round at 360.
+ hDegrees = hDegrees % 360;
+
+ // Make sure it's not negative.
+ while (hDegrees < 0)
{
hDegrees += 360;
}
diff --git a/src/ImageSharp/Common/Helpers/ImageMaths.cs b/src/ImageSharp/Common/Helpers/ImageMaths.cs
index 224b267e4..d4e347b19 100644
--- a/src/ImageSharp/Common/Helpers/ImageMaths.cs
+++ b/src/ImageSharp/Common/Helpers/ImageMaths.cs
@@ -119,19 +119,6 @@ namespace ImageSharp
return 1.0f;
}
- ///
- /// Returns the given degrees converted to radians.
- ///
- /// The angle in degrees.
- ///
- /// The representing the degree as radians.
- ///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static float DegreesToRadians(float degrees)
- {
- return degrees * (MathF.PI / 180);
- }
-
///
/// Gets the bounding from the given points.
///
diff --git a/src/ImageSharp/Numerics/Point.cs b/src/ImageSharp/Numerics/Point.cs
index 3cd47659c..8d523895f 100644
--- a/src/ImageSharp/Numerics/Point.cs
+++ b/src/ImageSharp/Numerics/Point.cs
@@ -137,7 +137,7 @@ namespace ImageSharp
/// The rotation
public static Matrix3x2 CreateRotation(Point origin, float degrees)
{
- float radians = ImageMaths.DegreesToRadians(degrees);
+ float radians = MathF.DegreeToRadian(degrees);
return Matrix3x2.CreateRotation(radians, new Vector2(origin.X, origin.Y));
}
@@ -173,8 +173,8 @@ namespace ImageSharp
/// The rotation
public static Matrix3x2 CreateSkew(Point origin, float degreesX, float degreesY)
{
- float radiansX = ImageMaths.DegreesToRadians(degreesX);
- float radiansY = ImageMaths.DegreesToRadians(degreesY);
+ float radiansX = MathF.DegreeToRadian(degreesX);
+ float radiansY = MathF.DegreeToRadian(degreesY);
return Matrix3x2.CreateSkew(radiansX, radiansY, new Vector2(origin.X, origin.Y));
}
diff --git a/src/ImageSharp/Processing/Processors/ColorMatrix/HueProcessor.cs b/src/ImageSharp/Processing/Processors/ColorMatrix/HueProcessor.cs
index 0d06c5868..1979fd11d 100644
--- a/src/ImageSharp/Processing/Processors/ColorMatrix/HueProcessor.cs
+++ b/src/ImageSharp/Processing/Processors/ColorMatrix/HueProcessor.cs
@@ -32,13 +32,13 @@ namespace ImageSharp.Processing.Processors
this.Angle = angle;
- float radians = ImageMaths.DegreesToRadians(angle);
- double cosradians = Math.Cos(radians);
- double sinradians = Math.Sin(radians);
+ float radians = MathF.DegreeToRadian(angle);
+ float cosradians = MathF.Cos(radians);
+ float sinradians = MathF.Sin(radians);
- float lumR = .213f;
- float lumG = .715f;
- float lumB = .072f;
+ float lumR = .213F;
+ float lumG = .715F;
+ float lumB = .072F;
float oneMinusLumR = 1 - lumR;
float oneMinusLumG = 1 - lumG;
@@ -49,15 +49,15 @@ namespace ImageSharp.Processing.Processors
// Number are taken from https://msdn.microsoft.com/en-us/library/jj192162(v=vs.85).aspx
Matrix4x4 matrix4X4 = new Matrix4x4()
{
- M11 = (float)(lumR + (cosradians * oneMinusLumR) - (sinradians * lumR)),
- M12 = (float)(lumR - (cosradians * lumR) - (sinradians * 0.143)),
- M13 = (float)(lumR - (cosradians * lumR) - (sinradians * oneMinusLumR)),
- M21 = (float)(lumG - (cosradians * lumG) - (sinradians * lumG)),
- M22 = (float)(lumG + (cosradians * oneMinusLumG) + (sinradians * 0.140)),
- M23 = (float)(lumG - (cosradians * lumG) + (sinradians * lumG)),
- M31 = (float)(lumB - (cosradians * lumB) + (sinradians * oneMinusLumB)),
- M32 = (float)(lumB - (cosradians * lumB) - (sinradians * 0.283)),
- M33 = (float)(lumB + (cosradians * oneMinusLumB) + (sinradians * lumB)),
+ M11 = lumR + (cosradians * oneMinusLumR) - (sinradians * lumR),
+ M12 = lumR - (cosradians * lumR) - (sinradians * 0.143F),
+ M13 = lumR - (cosradians * lumR) - (sinradians * oneMinusLumR),
+ M21 = lumG - (cosradians * lumG) - (sinradians * lumG),
+ M22 = lumG + (cosradians * oneMinusLumG) + (sinradians * 0.140F),
+ M23 = lumG - (cosradians * lumG) + (sinradians * lumG),
+ M31 = lumB - (cosradians * lumB) + (sinradians * oneMinusLumB),
+ M32 = lumB - (cosradians * lumB) - (sinradians * 0.283F),
+ M33 = lumB + (cosradians * oneMinusLumB) + (sinradians * lumB),
M44 = 1
};