Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何连接Windows.UI.Xaml.Media.Matrix类型的两个矩阵?_C#_Matrix_Uwp - Fatal编程技术网

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

C# 如何连接Windows.UI.Xaml.Media.Matrix类型的两个矩阵?,c#,matrix,uwp,C#,Matrix,Uwp,我正在为Android做一个类的UWP实现,在Android.Graphics.Matrix类中,用于预编译矩阵的预旋转、预转换、预缩放和预编译函数似乎没有等价物。这是可能的还是应该使用转换组 具体的问题是,我的类将获得一系列变换,需要将它们组合到变换点上。在中找到的矩阵乘法上尝试这个辅助方法 // ///实现WPF的矩阵。在Silverlight上乘法。 /// ///第一矩阵。 ///第二矩阵。 ///乘法结果。 专用静态矩阵MatrixMultiply(矩阵matrix1,矩阵matri

我正在为Android做一个类的UWP实现,在Android.Graphics.Matrix类中,用于预编译矩阵的预旋转、预转换、预缩放和预编译函数似乎没有等价物。这是可能的还是应该使用转换组


具体的问题是,我的类将获得一系列变换,需要将它们组合到变换点上。

在中找到的矩阵乘法上尝试这个辅助方法

//
///实现WPF的矩阵。在Silverlight上乘法。
/// 
///第一矩阵。
///第二矩阵。
///乘法结果。
专用静态矩阵MatrixMultiply(矩阵matrix1,矩阵matrix2)
{
//WPF等效于以下代码:
//返回矩阵乘法(矩阵1,矩阵2);
返回新矩阵(
(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);
}
/// <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);
}