Matrix Estructura
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa una matriz de transformación afín de 3 × 3 usada para las transformaciones en el espacio bidimensional.
public value class Matrix
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct Matrix
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public struct Matrix
Public Structure Matrix
<Matrix .../>
- or -
<object property="m11,m12,m21,m22,offsetX,offsetY"/>
- or -
<object property="m11 m12 m21 m22 offsetX offsetY"/>
-or-
<object property="Identity"/>
- Herencia
-
Matrix
- Atributos
Ejemplos
En este ejemplo XAML se define una matriz que proporciona datos para un Objeto MatrixTransform aplicado a una forma rectangular. En este caso, la matriz combina un desplazamiento (OffsetX y OffsetY y un sesgo (M12). Tenga en cuenta que este mismo efecto podría haberse producido mediante la combinación de TranslateTransform y skewTransform. Si se debe utilizar una matriz única o combinaciones de transformaciones discretas es una cuestión de estilo de codificación; los resultados son idénticos.
<Rectangle Width="100" Height="100" Fill="Red">
<Rectangle.RenderTransform>
<MatrixTransform Matrix="1,0,0,1,200,0">
</MatrixTransform>
</Rectangle.RenderTransform>
</Rectangle>
Comentarios
Una matriz de 3×3 se usa para transformaciones en un plano x-y bidimensional. Las matrices de transformación afín se pueden multiplicar para formar cualquier número de transformaciones lineales, como rotación y distorsión (sesgado), seguidas de una traslación. Una matriz de transformación affine tiene su columna final igual a (0, 0, 1), por lo que solo deben especificarse los miembros de las dos primeras columnas. Tenga en cuenta que los vectores se expresan como vectores de fila, no como vectores de columna.
Una matriz se almacena mediante el orden principal de fila y tiene la siguiente estructura:
M11 | M12 | 0 |
M21 | M22 | 0 |
OffsetX | OffsetY | 1 |
Los miembros de la última fila, OffsetX y OffsetY, representan valores de traducción.
En métodos y propiedades, la matriz de transformación se especifica normalmente como un vector con solo seis miembros, como se indica a continuación: (M11, M12, M21, M22, OffsetX, OffsetY)
Aunque puede usar una estructura Matrix directamente para traducir puntos individuales o con matrixTransform para transformar objetos, el Windows Runtime también proporciona un conjunto de clases que pueden transformar objetos sin trabajar directamente con matrices:
Las propiedades de una matriz se pueden animar (como una o varias animaciones DoubleAnimation o DoubleAnimationUsingKeyFrames).
Matrix es el valor de propiedad de la propiedad MatrixTransform.Matrix . Los tipos relacionados se pueden usar para matrices de transformación en un espacio tridimensional y, a continuación, se pueden usar para una proyección. Vea Matrix3D y Matrix3DProjection.
Proyecciones de lenguaje y miembros de Matrix
Si usa un lenguaje .NET de Microsoft (C# o Microsoft Visual Basic) o en extensiones de componentes de Visual C++ (C++/CX), Matrix tiene miembros que no son de datos disponibles y sus miembros de datos se exponen como propiedades de lectura y escritura, no campos.
Si va a programar con C++ con la biblioteca de plantillas de Windows Runtime (WRL), solo existen los campos de miembro de datos como miembros de Matrix y no puede usar los métodos o propiedades de la utilidad enumerados en la tabla de miembros. El código WRL puede tener acceso a métodos de utilidad similares que existen en la clase MatrixHelper .
Campos
M11 |
Valor de la primera fila y la primera columna de esta estructura matrix. |
M12 |
Valor de la primera fila y la segunda columna de esta estructura matrix. |
M21 |
El valor de la segunda fila y la primera columna de esta estructura matrix. |
M22 |
El valor de la segunda fila y la segunda columna de esta estructura matrix. |
OffsetX |
Obtiene o establece el valor de la tercera fila y la primera columna de esta estructura matrix. |
OffsetY |
Obtiene o establece el valor de la tercera fila y la segunda columna de esta estructura matrix. |