Freigeben über


Matrix.RotateAt Methode

Definition

Wendet eine Drehung im Uhrzeigersinn um den angegebenen Punkt auf diese Matrix an, indem die Drehung voraussteht.

Überlädt

RotateAt(Single, PointF)

Wendet eine Drehung im Uhrzeigersinn auf diese Matrix um den im parameter point angegebenen Punkt und durch Vorausstehen der Drehung an.

RotateAt(Single, PointF, MatrixOrder)

Wendet eine Drehung im Uhrzeigersinn um den angegebenen Punkt auf diese Matrix in der angegebenen Reihenfolge an.

RotateAt(Single, PointF)

Quelle:
Matrix.cs
Quelle:
Matrix.cs
Quelle:
Matrix.cs
Quelle:
Matrix.cs
Quelle:
Matrix.cs

Wendet eine Drehung im Uhrzeigersinn auf diese Matrix um den im parameter point angegebenen Punkt und durch Vorausstehen der Drehung an.

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)

Parameter

angle
Single

Der Winkel (Umfang) der Drehung in Grad.

point
PointF

Eine PointF, die die Mitte der Drehung darstellt.

Beispiele

Im folgenden Codebeispiel wird die Verwendung eines Matrix und der Transform-Methode zum Drehen einer Zeichenfolge veranschaulicht. Dieses Beispiel wurde für die Verwendung mit Windows Forms entwickelt. Erstellen Sie ein Formular, und fügen Sie den folgenden Code in das Formular ein. Rufen Sie die DrawVerticalStringFromBottomUp-Methode im Paint Ereignishandler des Formulars auf, und übergeben Sie e als 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

Gilt für:

RotateAt(Single, PointF, MatrixOrder)

Quelle:
Matrix.cs
Quelle:
Matrix.cs
Quelle:
Matrix.cs
Quelle:
Matrix.cs
Quelle:
Matrix.cs

Wendet eine Drehung im Uhrzeigersinn um den angegebenen Punkt auf diese Matrix in der angegebenen Reihenfolge an.

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)

Parameter

angle
Single

Der Winkel der Drehung in Grad.

point
PointF

Eine PointF, die die Mitte der Drehung darstellt.

order
MatrixOrder

Ein MatrixOrder, der die Reihenfolge (anfügen oder vorangestellt) angibt, in der die Drehung angewendet wird.

Beispiele

Das folgende Codebeispiel wurde für die Verwendung mit Windows Forms entwickelt und erfordert PaintEventArgse, ein Paint-Ereignisobjekt. Der Code führt die folgenden Aktionen aus:

  • Zeichnet ein Rechteck vor dem Anwenden einer Drehungstransformation (das blaue Rechteck) auf den Bildschirm.

  • Erstellt eine Matrix und dreht sie um 45 Grad um einen angegebenen Punkt.

  • Wendet diese Matrixtransformation auf das Rechteck an.

  • Zeichnet das transformierte Rechteck auf den Bildschirm (das rote Rechteck).

Beachten Sie, dass das rote Rechteck um die obere linke Ecke des Rechtecks gedreht wurde (der Drehungspunkt hat die RotateAt Methode angegeben).

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

Gilt für: