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