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 affine de 3x3 que se usa para las transformaciones en el espacio 2D.
public value class Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
[System.Serializable]
public struct Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
public struct Matrix : IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
[<System.Serializable>]
type Matrix = struct
interface IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
type Matrix = struct
interface IFormattable
Public Structure Matrix
Implements IFormattable
- Herencia
- Atributos
- Implementaciones
Comentarios
Una matriz 3x3 se usa para transformaciones en un plano x-y 2D. Las matrices de transformación afines se pueden multiplicar para formar cualquier número de transformaciones lineales, que incluyen rotación e inclinación (cizalladura), seguidas de la 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.
Un WPF Matrix se almacena mediante el orden de fila principal y tiene la siguiente estructura:
| Columna 1 | Columna 2 | Columna 3 |
|---|---|---|
| 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 normalmente se especifica como un vector con solo seis miembros, como se indica a continuación:
(M11, , M21M12, M22, OffsetX, ) OffsetY
Aunque puede usar una Matrix estructura directamente para traducir puntos individuales o con un MatrixTransform objeto para transformar objetos, WPF también proporciona un conjunto de clases que permiten transformar objetos sin trabajar directamente con matrices: RotateTransform, ScaleTransform, SkewTransformy TranslateTransform.
Uso de atributos XAML
<object property="m11, m12, m21, m22, offsetX, offsetY"/>
- or -
<object property="Identity"/>
Valores XAML
Valor de la primera fila y la primera columna de este Matrix. Para obtener más información, consulte la propiedad M11.
Valor de la primera fila y la segunda columna. Para obtener más información, consulte la propiedad M12.
Valor de la segunda fila y primera columna. Para obtener más información, consulte la propiedad M21.
Valor de la segunda fila y segunda columna. Para obtener más información, consulte la propiedad M22.
offsetXSystem.Double
Valor de la tercera fila y primera columna. Para obtener más información, consulte la propiedad OffsetX.
offsetYSystem.Double
Valor de la tercera fila y segunda columna. Para obtener más información, consulte la propiedad OffsetY.
Constructores
| Nombre | Description |
|---|---|
| Matrix(Double, Double, Double, Double, Double, Double) |
Inicializa una nueva instancia de la Matrix estructura. |
Propiedades
| Nombre | Description |
|---|---|
| Determinant |
Obtiene el determinante de esta Matrix estructura. |
| HasInverse |
Obtiene un valor que indica si esta Matrix estructura es invertible. |
| Identity |
Obtiene una identidad Matrix. |
| IsIdentity |
Obtiene un valor que indica si esta Matrix estructura es una matriz de identidad. |
| M11 |
Obtiene o establece el valor de la primera fila y la primera columna de esta Matrix estructura. |
| M12 |
Obtiene o establece el valor de la primera fila y la segunda columna de esta Matrix estructura. |
| M21 |
Obtiene o establece el valor de la segunda fila y la primera columna de esta Matrix estructura. |
| M22 |
Obtiene o establece el valor de la segunda fila y la segunda columna de esta Matrix estructura. |
| OffsetX |
Obtiene o establece el valor de la tercera fila y la primera columna de esta Matrix estructura. |
| OffsetY |
Obtiene o establece el valor de la tercera fila y la segunda columna de esta Matrix estructura. |
Métodos
| Nombre | Description |
|---|---|
| Append(Matrix) |
Anexa la estructura especificada Matrix a esta Matrix estructura. |
| Equals(Matrix, Matrix) |
Determina si las dos estructuras especificadas Matrix son idénticas. |
| Equals(Matrix) |
Determina si la estructura especificada Matrix es idéntica a esta instancia. |
| Equals(Object) |
Determina si el objeto especificado Object es una Matrix estructura idéntica a esta Matrix. |
| GetHashCode() |
Devuelve el código hash de esta Matrix estructura. |
| Invert() |
Invierte esta Matrix estructura. |
| Multiply(Matrix, Matrix) |
Multiplica una Matrix estructura por otra Matrix estructura. |
| Parse(String) |
Convierte una String representación de una matriz en la estructura equivalente Matrix . |
| Prepend(Matrix) |
Antepone la estructura especificada Matrix a esta Matrix estructura. |
| Rotate(Double) |
Aplica un giro del ángulo especificado sobre el origen de esta Matrix estructura. |
| RotateAt(Double, Double, Double) |
Gira esta matriz sobre el punto especificado. |
| RotateAtPrepend(Double, Double, Double) |
Antepone un giro del ángulo especificado en el punto especificado a esta Matrix estructura. |
| RotatePrepend(Double) |
Antepone un giro del ángulo especificado a esta Matrix estructura. |
| Scale(Double, Double) |
Anexa el vector de escala especificado a esta Matrix estructura. |
| ScaleAt(Double, Double, Double, Double) |
Escala esto Matrix por la cantidad especificada sobre el punto especificado. |
| ScaleAtPrepend(Double, Double, Double, Double) |
Antepone la escala especificada sobre el punto especificado de este Matrix. |
| ScalePrepend(Double, Double) |
Antepone el vector de escala especificado a esta Matrix estructura. |
| SetIdentity() |
Cambia esta Matrix estructura en una matriz de identidades. |
| Skew(Double, Double) |
Anexa una asimetría de los grados especificados en las dimensiones x e y a esta Matrix estructura. |
| SkewPrepend(Double, Double) |
Antepone una asimetría de los grados especificados en las dimensiones x e y a esta Matrix estructura. |
| ToString() | |
| ToString(IFormatProvider) |
Crea una String representación de esta Matrix estructura con información de formato específica de la referencia cultural. |
| Transform(Point) |
Transforma el punto especificado por Matrix y devuelve el resultado. |
| Transform(Point[]) |
Transforma los puntos especificados por este Matrix. |
| Transform(Vector) |
Transforma el vector especificado por este Matrix. |
| Transform(Vector[]) |
Transforma los vectores especificados por este Matrix. |
| Translate(Double, Double) |
Anexa una traducción de los desplazamientos especificados a esta Matrix estructura. |
| TranslatePrepend(Double, Double) |
Antepone una traducción de los desplazamientos especificados a esta Matrix estructura. |
Operadores
| Nombre | Description |
|---|---|
| Equality(Matrix, Matrix) |
Determina si las dos estructuras especificadas Matrix son idénticas. |
| Inequality(Matrix, Matrix) |
Determina si las dos estructuras especificadas Matrix no son idénticas. |
| Multiply(Matrix, Matrix) |
Multiplica una Matrix estructura por otra Matrix estructura. |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Da formato al valor de la instancia actual mediante el formato especificado. |