Matrix.RotateAt Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Aplica uma rotação no sentido horário sobre o ponto especificado a esse Matrix, acrescentando a rotação.
Sobrecargas
RotateAt(Single, PointF) |
Aplica uma rotação no sentido horário a essa Matrix ao redor do ponto especificado no parâmetro |
RotateAt(Single, PointF, MatrixOrder) |
Aplica uma rotação no sentido horário sobre o ponto especificado a esse Matrix na ordem especificada. |
RotateAt(Single, PointF)
- Origem:
- Matrix.cs
- Origem:
- Matrix.cs
- Origem:
- Matrix.cs
- Origem:
- Matrix.cs
- Origem:
- Matrix.cs
Aplica uma rotação no sentido horário a essa Matrix ao redor do ponto especificado no parâmetro point
e anexando a rotação.
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)
Parâmetros
- angle
- Single
O ângulo (extensão) da rotação, em graus.
Exemplos
O exemplo de código a seguir demonstra o uso de um Matrix e o método Transform para girar uma cadeia de caracteres. Este exemplo foi projetado para ser usado com o Windows Forms. Crie um formulário e cole o código a seguir nele. Chame o método DrawVerticalStringFromBottomUp
no manipulador de eventos Paint do formulário, passando e
como 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
Aplica-se a
RotateAt(Single, PointF, MatrixOrder)
- Origem:
- Matrix.cs
- Origem:
- Matrix.cs
- Origem:
- Matrix.cs
- Origem:
- Matrix.cs
- Origem:
- Matrix.cs
Aplica uma rotação no sentido horário sobre o ponto especificado a esse Matrix na ordem especificada.
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)
Parâmetros
- angle
- Single
O ângulo da rotação, em graus.
- order
- MatrixOrder
Um MatrixOrder que especifica a ordem (acréscimo ou prefixo) na qual a rotação é aplicada.
Exemplos
O exemplo de código a seguir foi projetado para uso com o Windows Forms e requer PaintEventArgse
, um objeto de evento Paint. O código executa as seguintes ações:
Desenha um retângulo na tela antes de aplicar uma transformação de rotação (o retângulo azul).
Cria uma matriz e gira-a 45 graus em torno de um ponto especificado.
Aplica essa transformação de matriz ao retângulo.
Desenha o retângulo transformado para a tela (o retângulo vermelho).
Observe que o retângulo vermelho foi girado ao redor do canto superior esquerdo do retângulo (o ponto de rotação especificou o método 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