/// <summary> /// </summary> public static Matrix3x3D CreateRotation(double radians) => (Matrix3x3D)Matrix3x2D.CreateRotation(radians);
/// <summary> /// </summary> public static Matrix3x3D CreateRotation(double radians, Vector2D centerPoint) => (Matrix3x3D)Matrix3x2D.CreateRotation(radians, centerPoint);
/// <summary> /// </summary> public static Matrix3x3D CreateSkew(double radiansX, double radiansY) => (Matrix3x3D)Matrix3x2D.CreateSkew(radiansX, radiansY);
/// <summary> /// </summary> public static Matrix3x3D CreateSkew(double radiansX, double radiansY, Vector2D centerPoint) => (Matrix3x3D)Matrix3x2D.CreateSkew(radiansX, radiansY, centerPoint);
/// <summary> /// </summary> public static Matrix3x3D CreateScale(double xScale, double yScale, Vector2D centerPoint) => (Matrix3x3D)Matrix3x2D.CreateScale(xScale, yScale, centerPoint);
/// <summary> /// </summary> public static Matrix3x3D CreateScale(double xScale, double yScale) => (Matrix3x3D)Matrix3x2D.CreateScale(xScale, yScale);
/// <summary> /// </summary> public static Matrix3x3D CreateTranslation(double xPosition, double yPosition) => (Matrix3x3D)Matrix3x2D.CreateTranslation(xPosition, yPosition);
public static Vector2D TransformNormal(Vector2D normal, Matrix3x2D matrix) => new Vector2D(normal.X * matrix.M11 + normal.Y * matrix.M21, normal.X * matrix.M12 + normal.Y * matrix.M22);
/// <summary> /// Transforms a vector by the given matrix.</summary> /// <param name="position"> /// The source vector.</param> /// <param name="matrix"> /// The transformation matrix.</param> /// <returns> /// The transformed vector.</returns> public static Vector2D Transform(Vector2D position, Matrix3x2D matrix) => new Vector2D(position.X * matrix.M11 + position.Y * matrix.M21 + matrix.M31, position.Y * matrix.M12 + position.Y * matrix.M22 + matrix.M32);