Matrix.RotateAt Метод

Определение

Применяет поворот по часовой стрелке вокруг указанной точки к этому объекту Matrix, добавляя поворот в начало.Applies a clockwise rotation about the specified point to this Matrix by prepending the rotation.

Перегрузки

RotateAt(Single, PointF)

Применяет поворот по часовой стрелке к этому объекту Matrix; поворот производится вокруг точки, указанной в параметре point, и путем добавления поворота в начало.Applies a clockwise rotation to this Matrix around the point specified in the point parameter, and by prepending the rotation.

RotateAt(Single, PointF, MatrixOrder)

Применяет поворот по часовой стрелке вокруг указанной точки к объекту Matrix в указанном порядке.Applies a clockwise rotation about the specified point to this Matrix in the specified order.

RotateAt(Single, PointF)

Применяет поворот по часовой стрелке к этому объекту Matrix; поворот производится вокруг точки, указанной в параметре point, и путем добавления поворота в начало.Applies a clockwise rotation to this Matrix around the point specified in the point parameter, and by prepending the rotation.

public:
 void RotateAt(float angle, System::Drawing::PointF point);
public void RotateAt (float angle, System.Drawing.PointF point);
member this.RotateAt : single * System.Drawing.PointF -> unit
Public Sub RotateAt (angle As Single, point As PointF)

Параметры

angle
Single

Угол (величина) поворота в градусах.The angle (extent) of the rotation, in degrees.

point
PointF

Объект PointF, представляющий центральную точку поворота.A PointF that represents the center of the rotation.

Примеры

В следующем примере кода показано использование Matrix Transform метода и для поворота строки.The following code example demonstrates using a Matrix and the Transform method to rotate a string. Этот пример предназначен для использования с Windows Forms.This example is designed to be used with Windows Forms. Создайте форму и вставьте в нее следующий код.Create a form and paste the following code into it. Вызовите DrawVerticalStringFromBottomUp метод в Paint обработчике событий формы, передав его e как PaintEventArgs .Call the DrawVerticalStringFromBottomUp method in the form's Paint event handler, passing e as PaintEventArgs.

private:
   void DrawVerticalStringFromBottomUp( PaintEventArgs^ e )
   {
      // Create the string to draw on the form.
      String^ text = "Can you read this?";

      // Create a GraphicsPath.
      System::Drawing::Drawing2D::GraphicsPath^ path = gcnew System::Drawing::Drawing2D::GraphicsPath;

      // Add the string to the path; declare the font, font style, size, and
      // vertical format for the string.
      path->AddString( text, this->Font->FontFamily, 1, 15, PointF(0.0F,0.0F), gcnew StringFormat( StringFormatFlags::DirectionVertical ) );

      // Declare a matrix that will be used to rotate the text.
      System::Drawing::Drawing2D::Matrix^ rotateMatrix = gcnew System::Drawing::Drawing2D::Matrix;

      // Set the rotation angle and starting point for the text.
      rotateMatrix->RotateAt( 180.0F, PointF(10.0F,100.0F) );

      // Transform the text with the matrix.
      path->Transform(rotateMatrix);

      // Set the SmoothingMode to high quality for best readability.
      e->Graphics->SmoothingMode = System::Drawing::Drawing2D::SmoothingMode::HighQuality;

      // Fill in the path to draw the string.
      e->Graphics->FillPath( Brushes::Red, path );

      // Dispose of the path.
      delete path;
   }
public void DrawVerticalStringFromBottomUp(PaintEventArgs e)
{

    // Create the string to draw on the form.
    string text = "Can you read this?";

    // Create a GraphicsPath.
    System.Drawing.Drawing2D.GraphicsPath path = 
        new System.Drawing.Drawing2D.GraphicsPath();

    // Add the string to the path; declare the font, font style, size, and
    // vertical format for the string.
    path.AddString(text, this.Font.FontFamily, 1, 15, 
        new PointF(0.0F, 0.0F), 
        new StringFormat(StringFormatFlags.DirectionVertical));

    // Declare a matrix that will be used to rotate the text.
    System.Drawing.Drawing2D.Matrix rotateMatrix = 
        new System.Drawing.Drawing2D.Matrix();

    // Set the rotation angle and starting point for the text.
    rotateMatrix.RotateAt(180.0F, new PointF(10.0F, 100.0F));

    // Transform the text with the matrix.
    path.Transform(rotateMatrix);

    // Set the SmoothingMode to high quality for best readability.
    e.Graphics.SmoothingMode = 
        System.Drawing.Drawing2D.SmoothingMode.HighQuality;

    // Fill in the path to draw the string.
    e.Graphics.FillPath(Brushes.Red, path);

    // Dispose of the path.
    path.Dispose();
}
Public Sub DrawVerticalStringFromBottomUp(ByVal e As PaintEventArgs)

    ' Create the string to draw on the form.
    Dim text As String = "Can you read this?"

    ' Create a GraphicsPath.
    Dim path As New System.Drawing.Drawing2D.GraphicsPath

    ' Add the string to the path; declare the font, font style, size, and
    ' vertical format for the string.
    path.AddString(text, Me.Font.FontFamily, 1, 15, New PointF(0.0F, 0.0F), _
        New StringFormat(StringFormatFlags.DirectionVertical))

    ' Declare a matrix that will be used to rotate the text.
    Dim rotateMatrix As New System.Drawing.Drawing2D.Matrix

    ' Set the rotation angle and starting point for the text.
    rotateMatrix.RotateAt(180.0F, New PointF(10.0F, 100.0F))

    ' Transform the text with the matrix.
    path.Transform(rotateMatrix)

    ' Set the SmoothingMode to high quality for best readability.
    e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.HighQuality

    ' Fill in the path to draw the string.
    e.Graphics.FillPath(Brushes.Red, path)

    ' Dispose of the path.
    path.Dispose()

End Sub

RotateAt(Single, PointF, MatrixOrder)

Применяет поворот по часовой стрелке вокруг указанной точки к объекту Matrix в указанном порядке.Applies a clockwise rotation about the specified point to this Matrix in the specified order.

public:
 void RotateAt(float angle, System::Drawing::PointF point, System::Drawing::Drawing2D::MatrixOrder order);
public void RotateAt (float angle, System.Drawing.PointF point, System.Drawing.Drawing2D.MatrixOrder order);
member this.RotateAt : single * System.Drawing.PointF * System.Drawing.Drawing2D.MatrixOrder -> unit
Public Sub RotateAt (angle As Single, point As PointF, order As MatrixOrder)

Параметры

angle
Single

Угол поворота в градусах.The angle of the rotation, in degrees.

point
PointF

Объект PointF, представляющий центральную точку поворота.A PointF that represents the center of the rotation.

order
MatrixOrder

Объект MatrixOrder, задающий порядок (в конце или в начале), в котором применяется поворот.A MatrixOrder that specifies the order (append or prepend) in which the rotation is applied.

Примеры

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

  • Выводит прямоугольник на экран перед применением преобразования поворота (синий прямоугольник).Draws a rectangle to the screen prior to applying a rotation transform (the blue rectangle).

  • Создает матрицу и поворачивает ее на 45 градусов вокруг заданной точки.Creates a matrix and rotates it 45 degrees around a specified point.

  • Применяет это преобразование матрицы к прямоугольнику.Applies this matrix transform is to the rectangle.

  • Рисует преобразованный прямоугольник на экране (красный прямоугольник).Draws the transformed rectangle to the screen (the red rectangle).

Обратите внимание, что красный прямоугольник поворачивается вокруг верхнего левого угла прямоугольника (точка вращения, заданная RotateAt методом).Notice that the red rectangle has been rotated around the upper left-hand corner of the rectangle (the rotation point specified the RotateAt method).

public:
   void RotateAtExample( PaintEventArgs^ e )
   {
      Pen^ myPen = gcnew Pen( Color::Blue,1.0f );
      Pen^ myPen2 = gcnew Pen( Color::Red,1.0f );
      PointF rotatePoint = PointF(150.0f,50.0f);

      // Draw the rectangle to the screen before applying the
      // transform.
      e->Graphics->DrawRectangle( myPen, 150, 50, 200, 100 );

      // Create a matrix and rotate it 45 degrees.
      Matrix^ myMatrix = gcnew Matrix;
      myMatrix->RotateAt( 45, rotatePoint, MatrixOrder::Append );

      // Draw the rectangle to the screen again after applying the
      // transform.
      e->Graphics->Transform = myMatrix;
      e->Graphics->DrawRectangle( myPen2, 150, 50, 200, 100 );
   }
public void RotateAtExample(PaintEventArgs e)
{
    Pen myPen = new Pen(Color.Blue, 1);
    Pen myPen2 = new Pen(Color.Red, 1);
    PointF rotatePoint = new PointF(150.0f, 50.0f);
             
    // Draw the rectangle to the screen before applying the
    // transform.
    e.Graphics.DrawRectangle(myPen, 150, 50, 200, 100);
             
    // Create a matrix and rotate it 45 degrees.
    Matrix myMatrix = new Matrix();
    myMatrix.RotateAt(45, rotatePoint, MatrixOrder.Append);
             
    // Draw the rectangle to the screen again after applying the
    // transform.
    e.Graphics.Transform = myMatrix;
    e.Graphics.DrawRectangle(myPen2, 150, 50, 200, 100);
}
Public Sub RotateAtExample(ByVal e As PaintEventArgs)
    Dim myPen As New Pen(Color.Blue, 1)
    Dim myPen2 As New Pen(Color.Red, 1)
    Dim rotatePoint As New PointF(150.0F, 50.0F)

    ' Draw the rectangle to the screen before applying the
    ' transform.
    e.Graphics.DrawRectangle(myPen, 150, 50, 200, 100)

    ' Create a matrix and rotate it 45 degrees.
    Dim myMatrix As New Matrix
    myMatrix.RotateAt(45, rotatePoint, MatrixOrder.Append)

    ' Draw the rectangle to the screen again after applying the
    ' transform.
    e.Graphics.Transform = myMatrix
    e.Graphics.DrawRectangle(myPen2, 150, 50, 200, 100)
End Sub

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