Graphics.MultiplyTransform Метод

Определение

Умножает мировое преобразование данного объекта Graphics на указываемый объект Matrix.

Перегрузки

MultiplyTransform(Matrix)

Умножает мировое преобразование данного объекта Graphics на указываемый объект Matrix.

MultiplyTransform(Matrix, MatrixOrder)

Умножает мировое преобразование данного объекта Graphics на указываемый объект Matrix в заданном порядке.

MultiplyTransform(Matrix)

Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs

Умножает мировое преобразование данного объекта Graphics на указываемый объект Matrix.

public:
 void MultiplyTransform(System::Drawing::Drawing2D::Matrix ^ matrix);
public void MultiplyTransform (System.Drawing.Drawing2D.Matrix matrix);
member this.MultiplyTransform : System.Drawing.Drawing2D.Matrix -> unit
Public Sub MultiplyTransform (matrix As Matrix)

Параметры

matrix
Matrix

Матрица Matrix 4x4, на которую умножается мировое преобразование.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает матрицу transformMatrix (матрицу удостоверений два на два плюс вектор нулевого преобразования).

  • Преобразует матрицу преобразования по вектору (200, 100).

  • Поворачивает матрицу преобразования мира Формы Windows На 30 градусов, добавляет матрицу поворота на 30 градусов к матрице преобразования формы.

  • Умножает повернутую матрицу преобразования мира на преобразованный transformMatrixи добавляет transformMatrix перед матрицей преобразования мира.

  • Рисует повернутый, переведенный эллипс.

public:
   void MultiplyTransformMatrix( PaintEventArgs^ e )
   {
      // Create transform matrix.
      Matrix^ transformMatrix = gcnew Matrix;

      // Translate matrix, prepending translation vector.
      transformMatrix->Translate( 200.0F, 100.0F );

      // Rotate transformation matrix of graphics object,
      // prepending rotation matrix.
      e->Graphics->RotateTransform( 30.0F );

      // Multiply (prepend to) transformation matrix of
      // graphics object to translate graphics transformation.
      e->Graphics->MultiplyTransform( transformMatrix );

      // Draw rotated, translated ellipse.
      e->Graphics->DrawEllipse( gcnew Pen( Color::Blue,3.0f ), -80, -40, 160, 80 );
   }
private void MultiplyTransformMatrix(PaintEventArgs e)
{

    // Create transform matrix.
    Matrix transformMatrix = new Matrix();

    // Translate matrix, prepending translation vector.
    transformMatrix.Translate(200.0F, 100.0F);

    // Rotate transformation matrix of graphics object,

    // prepending rotation matrix.
    e.Graphics.RotateTransform(30.0F);

    // Multiply (prepend to) transformation matrix of

    // graphics object to translate graphics transformation.
    e.Graphics.MultiplyTransform(transformMatrix);

    // Draw rotated, translated ellipse.
    e.Graphics.DrawEllipse(new Pen(Color.Blue, 3), -80, -40, 160, 80);
}
Private Sub MultiplyTransformMatrix(ByVal e As PaintEventArgs)

    ' Create transform matrix.
    Dim transformMatrix As New Matrix

    ' Translate matrix, prepending translation vector.
    transformMatrix.Translate(200.0F, 100.0F)

    ' Rotate transformation matrix of graphics object,

    ' prepending rotation matrix.
    e.Graphics.RotateTransform(30.0F)

    ' Multiply (prepend to) transformation matrix of

    ' graphics object to translate graphics transformation.
    e.Graphics.MultiplyTransform(transformMatrix)

    ' Draw rotated, translated ellipse.
    e.Graphics.DrawEllipse(New Pen(Color.Blue, 3), -80, -40, 160, 80)
End Sub

Комментарии

Этот метод добавляет в начало матрицу, указанную параметром matrix , чтобы результатом было matrix преобразование мира x.

См. также раздел

Применяется к

MultiplyTransform(Matrix, MatrixOrder)

Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs

Умножает мировое преобразование данного объекта Graphics на указываемый объект Matrix в заданном порядке.

public:
 void MultiplyTransform(System::Drawing::Drawing2D::Matrix ^ matrix, System::Drawing::Drawing2D::MatrixOrder order);
public void MultiplyTransform (System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order);
member this.MultiplyTransform : System.Drawing.Drawing2D.Matrix * System.Drawing.Drawing2D.MatrixOrder -> unit
Public Sub MultiplyTransform (matrix As Matrix, order As MatrixOrder)

Параметры

matrix
Matrix

Матрица Matrix 4x4, на которую умножается мировое преобразование.

order
MatrixOrder

Член перечисления MatrixOrder, определяющий порядок умножения.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает матрицу transformMatrix (матрицу удостоверений два на два плюс вектор нулевого преобразования).

  • Преобразует матрицу преобразования по вектору (200, 100).

  • Поворачивает матрицу преобразования мира Формы Windows На 30 градусов, добавляя матрицу поворота на 30 градусов к матрице преобразования формы.

  • Умножает повернутую матрицу преобразования мира на преобразованный transformMatrix, добавляя к transformMatrix матрице преобразования мира.

  • Рисует повернутый, переведенный эллипс.

public:
   void MultiplyTransformMatrixOrder( PaintEventArgs^ e )
   {
      // Create transform matrix.
      Matrix^ transformMatrix = gcnew Matrix;

      // Translate matrix, prepending translation vector.
      transformMatrix->Translate( 200.0F, 100.0F );

      // Rotate transformation matrix of graphics object,
      // prepending rotation matrix.
      e->Graphics->RotateTransform( 30.0F );

      // Multiply (append to) transformation matrix of
      // graphics object to translate graphics transformation.
      e->Graphics->MultiplyTransform( transformMatrix, MatrixOrder::Append );

      // Draw rotated, translated ellipse.
      e->Graphics->DrawEllipse( gcnew Pen( Color::Blue,3.0f ), -80, -40, 160, 80 );
   }
private void MultiplyTransformMatrixOrder(PaintEventArgs e)
{

    // Create transform matrix.
    Matrix transformMatrix = new Matrix();

    // Translate matrix, prepending translation vector.
    transformMatrix.Translate(200.0F, 100.0F);

    // Rotate transformation matrix of graphics object,

    // prepending rotation matrix.
    e.Graphics.RotateTransform(30.0F);

    // Multiply (append to) transformation matrix of

    // graphics object to translate graphics transformation.
    e.Graphics.MultiplyTransform(transformMatrix, MatrixOrder.Append);

    // Draw rotated, translated ellipse.
    e.Graphics.DrawEllipse(new Pen(Color.Blue, 3), -80, -40, 160, 80);
}
Private Sub MultiplyTransformMatrixOrder(ByVal e As PaintEventArgs)

    ' Create transform matrix.
    Dim transformMatrix As New Matrix

    ' Translate matrix, prepending translation vector.
    transformMatrix.Translate(200.0F, 100.0F)

    ' Rotate transformation matrix of graphics object,

    ' prepending rotation matrix.
    e.Graphics.RotateTransform(30.0F)

    ' Multiply (append to) transformation matrix of

    ' graphics object to translate graphics transformation.
    e.Graphics.MultiplyTransform(transformMatrix, MatrixOrder.Append)

    ' Draw rotated, translated ellipse.
    e.Graphics.DrawEllipse(New Pen(Color.Blue, 3), -80, -40, 160, 80)
End Sub

Комментарии

Значение Prepend параметра order указывает, что порядок умножения — преобразование matrix мира x. Значение Append для order указывает, что порядок умножения — преобразование мира x matrix.

См. также раздел

Применяется к