Compartir a través de


Matrix Estructura

Definición

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(Windows.Foundation.UniversalApiContract, 65536)]
struct Matrix
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 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

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

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:

M11M120
M21M220
OffsetXOffsetY1

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.

Se aplica a