GraphicsPath.Transform(Matrix) Метод

Определение

Применяет матрицу преобразования к этому объекту GraphicsPath.Applies a transform matrix to this GraphicsPath.

public:
 void Transform(System::Drawing::Drawing2D::Matrix ^ matrix);
public void Transform (System.Drawing.Drawing2D.Matrix matrix);
member this.Transform : System.Drawing.Drawing2D.Matrix -> unit

Параметры

matrix
Matrix

Объект Matrix, представляющий применяемое преобразование.A Matrix that represents the transformation to apply.

Примеры

Следующий пример кода предназначен для использования с Windows Forms, и для него требуется PaintEventArgse, объект события OnPaint.The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, an OnPaint event object. Код выполняет следующие действия.The code performs the following actions:

  • Создает контур и добавляет к нему эллипс.Creates a path and adds an ellipse to the path.

  • Рисует контур на экране.Draws path to the screen.

  • Создает матрицу преобразования для преобразования единиц контура 100 в направлении оси x.Creates a transform matrix to translate the path 100 units in the x-axis direction.

  • Рисует преобразованный контур на экране.Draws the transformed path to the screen.

Обратите внимание, что исходный эллипс рисуется черным цветом, а преобразованный эллипс — красным.Notice that the original ellipse is drawn in black and the transformed ellipse is drawn in red.

private:
   void TransformExample( PaintEventArgs^ e )
   {
      // Create a path and add and ellipse.
      GraphicsPath^ myPath = gcnew GraphicsPath;
      myPath->AddEllipse( 0, 0, 100, 200 );

      // Draw the starting position to screen.
      e->Graphics->DrawPath( Pens::Black, myPath );

      // Move the ellipse 100 points to the right.
      Matrix^ translateMatrix = gcnew Matrix;
      translateMatrix->Translate( 100, 0 );
      myPath->Transform(translateMatrix);

      // Draw the transformed ellipse to the screen.
      e->Graphics->DrawPath( gcnew Pen( Color::Red,2.0f ), myPath );
   }
private void TransformExample(PaintEventArgs e)
{
             
    // Create a path and add and ellipse.
    GraphicsPath myPath = new GraphicsPath();
    myPath.AddEllipse(0, 0, 100, 200);
             
    // Draw the starting position to screen.
    e.Graphics.DrawPath(Pens.Black, myPath);
             
    // Move the ellipse 100 points to the right.
    Matrix translateMatrix = new Matrix();
    translateMatrix.Translate(100, 0);
    myPath.Transform(translateMatrix);
             
    // Draw the transformed ellipse to the screen.
    e.Graphics.DrawPath(new Pen(Color.Red, 2), myPath);
}
Public Sub TransformExample(ByVal e As PaintEventArgs)

    ' Create a path and add and ellipse.
    Dim myPath As New GraphicsPath
    myPath.AddEllipse(0, 0, 100, 200)

    ' Draw the starting position to screen.
    e.Graphics.DrawPath(Pens.Black, myPath)

    ' Move the ellipse 100 points to the right.
    Dim translateMatrix As New Matrix
    translateMatrix.Translate(100, 0)
    myPath.Transform(translateMatrix)

    ' Draw the transformed ellipse to the screen.
    e.Graphics.DrawPath(New Pen(Color.Red, 2), myPath)
End Sub

Комментарии

Преобразование может масштабировать, переводить, вращать или отклонять GraphicsPath.The transformation can scale, translate, rotate, or skew the GraphicsPath.

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