Matrix.RotateAt 메서드

정의

회전을 앞에 추가하여 지정된 지점을 기준으로 이 Matrix에 시계 방향 회전을 적용합니다.Applies a clockwise rotation about the specified point to this Matrix by prepending the rotation.

오버로드

RotateAt(Single, PointF)

회전을 앞에 추가하여 point 매개 변수에 지정된 지점을 기준으로 이 Matrix에 시계 방향 회전을 적용합니다.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)

회전을 앞에 추가하여 point 매개 변수에 지정된 지점을 기준으로 이 Matrix에 시계 방향 회전을 적용합니다.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.

예제

다음 코드 예제는 MatrixTransform 문자열 회전 하는 방법.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

적용 대상