Udostępnij za pośrednictwem


Graphics.MultiplyTransform Metoda

Definicja

Mnoży światową transformację tego Graphics i określa Matrix.

Przeciążenia

MultiplyTransform(Matrix, MatrixOrder)

Mnoży transformację świata tej Graphics i określa Matrix w określonej kolejności.

MultiplyTransform(Matrix)

Mnoży światową transformację tego Graphics i określa Matrix.

MultiplyTransform(Matrix, MatrixOrder)

Źródło:
Graphics.cs
Źródło:
Graphics.cs
Źródło:
Graphics.cs
Źródło:
Graphics.cs
Źródło:
Graphics.cs

Mnoży transformację świata tej Graphics i określa Matrix w określonej kolejności.

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)

Parametry

matrix
Matrix

4x4 Matrix, które mnożą transformację świata.

order
MatrixOrder

Element członkowski wyliczenia MatrixOrder, który określa kolejność mnożenia.

Przykłady

Poniższy przykład kodu jest przeznaczony do użycia z formularzami Systemu Windows i wymaga PaintEventArgse, który jest parametrem programu obsługi zdarzeń Paint. Kod wykonuje następujące akcje:

  • Tworzy macierz transformMatrix (dwie według dwóch macierzy tożsamości oraz wektor zerowego tłumaczenia).

  • Przekształca macierz według wektora (200, 100).

  • Obraca macierz transformacji świata formularza systemu Windows o 30 stopni, poprzedzając macierz rotacji przez 30 stopni do macierzy transformacji formularza.

  • Mnoży obróconą macierz transformacji świata przez przetłumaczoną transformMatrix, dołączając transformMatrix do macierzy transformacji świata.

  • Rysuje obrócony, przetłumaczony wielokropek.

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

Uwagi

Wartość Prepend parametru order określa, że kolejność mnożenia jest matrix transformacji świata x. Wartość Append dla order określa, że kolejność mnożenia to transformacja świata x matrix.

Zobacz też

Dotyczy

MultiplyTransform(Matrix)

Źródło:
Graphics.cs
Źródło:
Graphics.cs
Źródło:
Graphics.cs
Źródło:
Graphics.cs
Źródło:
Graphics.cs

Mnoży światową transformację tego Graphics i określa 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)

Parametry

matrix
Matrix

4x4 Matrix, które mnożą transformację świata.

Przykłady

Poniższy przykład kodu jest przeznaczony do użycia z formularzami Systemu Windows i wymaga PaintEventArgse, który jest parametrem programu obsługi zdarzeń Paint. Kod wykonuje następujące akcje:

  • Tworzy macierz transformMatrix (dwie według dwóch macierzy tożsamości oraz wektor zerowego tłumaczenia).

  • Przekształca macierz według wektora (200, 100).

  • Obraca macierz transformacji świata formularza systemu Windows o 30 stopni, poprzedza macierz rotacji przez 30 stopni do macierzy transformacji formularza.

  • Mnoży obróconą macierz transformacji świata przez przetłumaczone transformMatrixi poprzedza transformMatrix macierzy transformacji świata.

  • Rysuje obrócony, przetłumaczony wielokropek.

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

Uwagi

Ta metoda poprzedza macierz określoną przez parametr matrix, tak aby wynik był matrix transformacji świata x.

Zobacz też

Dotyczy