Matrix.RotateAt Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Použije otočení po směru hodinových ručiček o zadaném bodu na tento Matrix před otočením.
Přetížení
RotateAt(Single, PointF) |
Použije otočení po směru hodinových ručiček na tento Matrix kolem bodu zadaného v parametru |
RotateAt(Single, PointF, MatrixOrder) |
Použije otočení po směru hodinových ručiček o zadaném bodu na tento Matrix v zadaném pořadí. |
RotateAt(Single, PointF)
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
Použije otočení po směru hodinových ručiček na tento Matrix kolem bodu zadaného v parametru point
a před otočením.
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)
Parametry
- angle
- Single
Úhel (rozsah) otočení ve stupních.
Příklady
Následující příklad kódu ukazuje použití Matrix a Transform metoda otočení řetězce. Tento příklad je navržený tak, aby se používal s Windows Forms. Vytvořte formulář a vložte do něj následující kód. Volejte metodu DrawVerticalStringFromBottomUp
v obslužné rutině události Paint formuláře a předejte e
jako 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
Platí pro
RotateAt(Single, PointF, MatrixOrder)
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
Použije otočení po směru hodinových ručiček o zadaném bodu na tento Matrix v zadaném pořadí.
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)
Parametry
- angle
- Single
Úhel otočení ve stupních.
- order
- MatrixOrder
MatrixOrder, která určuje pořadí (připojení nebo předpend), ve kterém se otočení použije.
Příklady
Následující příklad kódu je určen pro použití s Windows Forms a vyžaduje PaintEventArgse
, Paint objekt události. Kód provede následující akce:
Nakreslí na obrazovku obdélník před použitím transformace otočení (modrý obdélník).
Vytvoří matici a otočí ji o 45 stupňů kolem zadaného bodu.
Použije tuto maticovou transformaci na obdélník.
Nakreslí transformovaný obdélník na obrazovku (červený obdélník).
Všimněte si, že červený obdélník byl otočen kolem levého horního rohu obdélníku (bod otáčení určil metodu 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