Matrix.RotateAt 方法  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
通过追加旋转,将指定点的顺时针旋转应用于此 Matrix。
重载
| RotateAt(Single, PointF) | 将顺时针旋转应用于此 Matrix 围绕  | 
| RotateAt(Single, PointF, MatrixOrder) | 按指定顺序将指定点的顺时针旋转应用于此 Matrix。 | 
RotateAt(Single, PointF)
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
将顺时针旋转应用于此 Matrix 围绕 point 参数中指定的点,并附加旋转。
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 -> unitPublic Sub RotateAt (angle As Single, point As PointF)参数
- angle
- Single
旋转的角度(范围),以度为单位。
示例
下面的代码示例演示如何使用 Matrix 和 Transform 方法来旋转字符串。 此示例旨在与 Windows 窗体一起使用。 创建窗体并将以下代码粘贴到其中。 在表单的 Paint 事件处理程序中调用 DrawVerticalStringFromBottomUp 方法,将 e 作为 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)
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
按指定顺序将指定点的顺时针旋转应用于此 Matrix。
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 -> unitPublic Sub RotateAt (angle As Single, point As PointF, order As MatrixOrder)参数
- angle
- Single
旋转的角度(以度为单位)。
- order
- MatrixOrder
一个 MatrixOrder,指定应用旋转的顺序(追加或追加)。
示例
下面的代码示例旨在与 Windows 窗体一起使用,它需要 PaintEventArgsePaint 事件对象。 该代码执行以下操作:
- 在应用旋转转换(蓝色矩形)之前,将矩形绘制到屏幕。 
- 创建矩阵并在指定点周围旋转 45 度。 
- 将此矩阵转换应用于矩形。 
- 将转换后的矩形绘制到屏幕(红色矩形)。 
请注意,红色矩形已围绕矩形的左上角旋转(指定 RotateAt 方法的旋转点)。
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