Matrix.RotateAt メソッド

定義

回転の前に置いて、指定した点を中心に時計回りの回転をこの Matrix に適用します。

オーバーロード

RotateAt(Single, PointF)

この Matrix に、point パラメーターで指定された点を中心に、回転の前に時計回りの回転を適用します。

RotateAt(Single, PointF, MatrixOrder)

指定した順序で、指定した点を中心に時計回りの回転をこの Matrix に適用します。

RotateAt(Single, PointF)

ソース:
Matrix.cs
ソース:
Matrix.cs
ソース:
Matrix.cs
ソース:
Matrix.cs
ソース:
Matrix.cs

この Matrix に、point パラメーターで指定された点を中心に、回転の前に時計回りの回転を適用します。

public void RotateAt (float angle, System.Drawing.PointF point);

パラメーター

angle
Single

回転の角度 (範囲) を度単位で指定します。

point
PointF

回転の中心を表す PointF

次のコード例では、MatrixTransform メソッドを使用して文字列を回転する方法を示します。 この例は、Windows フォームで使用するように設計されています。 フォームを作成し、次のコードを貼り付けます。 フォームの Paint イベント ハンドラーで DrawVerticalStringFromBottomUp メソッドを呼び出し、PaintEventArgsとして e を渡します。

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();
}

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

RotateAt(Single, PointF, MatrixOrder)

ソース:
Matrix.cs
ソース:
Matrix.cs
ソース:
Matrix.cs
ソース:
Matrix.cs
ソース:
Matrix.cs

指定した順序で、指定した点を中心に時計回りの回転をこの Matrix に適用します。

public void RotateAt (float angle, System.Drawing.PointF point, System.Drawing.Drawing2D.MatrixOrder order);

パラメーター

angle
Single

回転の角度を度単位で指定します。

point
PointF

回転の中心を表す PointF

order
MatrixOrder

回転が適用される順序 (追加または先頭) を指定する MatrixOrder

次のコード例は、Windows フォームで使用できるように設計されており、Paint イベント オブジェクトである PaintEventArgseが必要です。 このコードは、次のアクションを実行します。

  • 回転変換 (青い四角形) を適用する前に、画面に四角形を描画します。

  • 行列を作成し、指定した点を中心に 45 度回転します。

  • この行列変換を四角形に適用します。

  • 変換された四角形 (赤い四角形) を画面に描画します。

赤い四角形が四角形の左上隅 (RotateAt メソッドを指定した回転ポイント) を中心に回転していることに注意してください。

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);
}

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9