|
@@ -214,6 +214,21 @@ namespace Avalonia
|
|
|
return new Matrix(cos, sin, -sin, cos, 0, 0);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// Creates a rotation matrix using the given rotation in radians around center point.
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="radians">The amount of rotation, in radians. </param>
|
|
|
+ /// <param name="center">The location of center point. </param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static Matrix CreateRotation(double radians, Point center)
|
|
|
+ {
|
|
|
+ var cos = Math.Cos(radians);
|
|
|
+ var sin = Math.Sin(radians);
|
|
|
+ var x = center.X;
|
|
|
+ var y = center.Y;
|
|
|
+ return new Matrix(cos, sin, -sin, cos, x * (1.0 - cos) + y * sin, y * (1.0 - cos) - x * sin);
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// Creates a skew matrix from the given axis skew angles in radians.
|
|
|
/// </summary>
|