Compartir a través de


Método LinearGradientBrush::TranslateTransform (gdiplusbrush.h)

El método LinearGradientBrush::TranslateTransform actualiza la matriz de transformación actual de este pincel con el producto de sí mismo y una matriz de traducción.

Sintaxis

Status TranslateTransform(
  [in] REAL        dx,
  [in] REAL        dy,
  [in] MatrixOrder order
);

Parámetros

[in] dx

Tipo: REAL

Número real que especifica el componente horizontal de la traducción.

[in] dy

Tipo: REAL

Número real que especifica el componente vertical de la traducción.

[in] order

Tipo: MatrixOrder

Opcional. Elemento de la enumeración MatrixOrder que especifica el orden de la multiplicación. MatrixOrderPrepend especifica que la matriz de traducción está a la izquierda y MatrixOrderAppend especifica que la matriz de traducción está a la derecha. El valor predeterminado es MatrixOrderPrepend.

Valor devuelto

Tipo: Estado

Si el método se realiza correctamente, devuelve Ok, que es un elemento de la enumeración Status .

Si se produce un error en el método, devuelve uno de los otros elementos de la enumeración Status .

Comentarios

Una sola matriz de 3 ×3 puede almacenar cualquier secuencia de transformaciones afín. Si tiene varias matrices de 3 ×3, cada una de las cuales representa una transformación afín, el producto de esas matrices es una sola matriz de 3 ×3 que representa toda la secuencia de transformaciones. La transformación representada por ese producto se denomina transformación compuesta. Por ejemplo, supongamos que la matriz S representa un escalado y la matriz T representa una traducción. Si la matriz M es el ST del producto, la matriz M representa una transformación compuesta: la primera escala y, a continuación, se traduce.

El orden de multiplicación de matriz es importante. En general, el producto de matriz RT no es el mismo que el tr del producto de matriz. En el ejemplo indicado en el párrafo anterior, la transformación compuesta representada por RT (primero girar y traducir) no es la misma que la transformación compuesta representada por TR (primero traducir y girar).

Ejemplos

En el ejemplo siguiente se crea un pincel de degradado lineal y se usa para rellenar un rectángulo. A continuación, el código modifica la matriz de transformación del pincel, aplica una transformación compuesta y, a continuación, rellena un rectángulo con el pincel transformado.

VOID Example_TranslateTrans(HDC hdc)
{
   Graphics myGraphics(hdc);

   LinearGradientBrush linGrBrush(
      Rect(0, 0, 80, 40),
      Color(255, 255, 0, 0),  // red
      Color(255, 0, 0, 255),  // blue
      LinearGradientModeHorizontal);

   // Fill a large area with the linear gradient brush (no transformation).
   myGraphics.FillRectangle(&linGrBrush, 0, 0, 800, 150);

   // Apply a composite transformation: first scale, then translate.
   linGrBrush.ScaleTransform(2, 1);                     // horizontal doubling
   linGrBrush.TranslateTransform(30, MatrixOrderAppend);// translation

   // Fill a large area with the transformed linear gradient brush.
   myGraphics.FillRectangle(&linGrBrush, 0, 200, 800, 150);
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP, Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado gdiplusbrush.h (include Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

Pinceles y formas rellenas

Rellenar formas con un pincel degradado

LinearGradientBrush

LinearGradientBrush::MultiplyTransform

LinearGradientBrush::ResetTransform

LinearGradientBrush::RotateTransform

LinearGradientBrush::ScaleTransform

Matriz

Representación matricial de transformaciones

MatrixOrder

Transformaciones