如何连接Windows.UI.Xaml.Media.Matrix类型的两个矩阵?

时间:2017-07-11 18:00:46

标签: c# matrix uwp

我正在执行我用于Android的类的UWP实现,并且似乎不等同于用于在Android中预先预处理矩阵的PreRotate,PreTranslate,PreScale和PreConcat函数.Graphics .Matrix课。这是可能的还是我应该使用转换组?

具体问题是我的班级将进行一系列变换,并需要将它们组合成变换点。

1 个答案:

答案 0 :(得分:0)

尝试使用Layout transform in Windows 8 WinRT XAML

中的矩阵乘法辅助方法
/// <summary>
/// Implements WPF's Matrix.Multiply on Silverlight.
/// </summary>
/// <param name="matrix1">First matrix.</param>
/// <param name="matrix2">Second matrix.</param>
/// <returns>Multiplication result.</returns>
private static Matrix MatrixMultiply(Matrix matrix1, Matrix matrix2)
{
    // WPF equivalent of following code:
    // return Matrix.Multiply(matrix1, matrix2);
    return new Matrix(
        (matrix1.M11 * matrix2.M11) + (matrix1.M12 * matrix2.M21),
        (matrix1.M11 * matrix2.M12) + (matrix1.M12 * matrix2.M22),
        (matrix1.M21 * matrix2.M11) + (matrix1.M22 * matrix2.M21),
        (matrix1.M21 * matrix2.M12) + (matrix1.M22 * matrix2.M22),
        ((matrix1.OffsetX * matrix2.M11) + (matrix1.OffsetY * matrix2.M21)) + matrix2.OffsetX,
        ((matrix1.OffsetX * matrix2.M12) + (matrix1.OffsetY * matrix2.M22)) + matrix2.OffsetY);
}