Matrix.TransformVectors Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Multiplie chaque vecteur dans un tableau par la matrice. Les éléments de traduction de cette matrice (troisième ligne) sont ignorés.
Surcharges
TransformVectors(Point[]) |
Applique uniquement l’échelle et la rotation des composants de cette Matrix au tableau de points spécifié. |
TransformVectors(PointF[]) |
Multiplie chaque vecteur dans un tableau par la matrice. Les éléments de traduction de cette matrice (troisième ligne) sont ignorés. |
TransformVectors(ReadOnlySpan<Point>) | |
TransformVectors(ReadOnlySpan<PointF>) |
TransformVectors(Point[])
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
Applique uniquement l’échelle et la rotation des composants de cette Matrix au tableau de points spécifié.
public:
void TransformVectors(cli::array <System::Drawing::Point> ^ pts);
public:
void TransformVectors(... cli::array <System::Drawing::Point> ^ pts);
public void TransformVectors (System.Drawing.Point[] pts);
public void TransformVectors (params System.Drawing.Point[] pts);
member this.TransformVectors : System.Drawing.Point[] -> unit
Public Sub TransformVectors (pts As Point())
Public Sub TransformVectors (ParamArray pts As Point())
Paramètres
Exemples
L’exemple de code suivant est conçu pour être utilisé avec Windows Forms et nécessite PaintEventArgse
, un objet d’événement Paint. Le code effectue les actions suivantes :
Crée un tableau de points qui forment un rectangle.
Dessine ce tableau de points à l’écran avant d’appliquer une transformation de mise à l’échelle (rectangle bleu).
Crée une matrice et la met à l’échelle de 3 dans l’axe x et 2 dans l’axe y et la traduit par 100 dans les deux axes.
Répertorie les éléments de matrice à l’écran.
Applique cette transformation de matrice au tableau de points.
Dessine le tableau transformé à l’écran (rectangle rouge).
Notez que le rectangle rouge a été mis à l’échelle par un facteur de 3 dans l’axe x et par 2 dans l’axe y, y compris le coin supérieur gauche du rectangle (le point de début du rectangle), mais que le vecteur de traduction (les deux derniers éléments de la matrice) est ignoré.
public:
void TransformVectorsExample( PaintEventArgs^ e )
{
Pen^ myPen = gcnew Pen( Color::Blue,1.0f );
Pen^ myPen2 = gcnew Pen( Color::Red,1.0f );
// Create an array of points.
array<Point>^ myArray = {Point(20,20),Point(120,20),Point(120,120),Point(20,120),Point(20,20)};
// Draw the Points to the screen before applying the
// transform.
e->Graphics->DrawLines( myPen, myArray );
// Create a matrix, scale it, and translate it.
Matrix^ myMatrix = gcnew Matrix;
myMatrix->Scale( 3, 2, MatrixOrder::Append );
myMatrix->Translate( 100, 100, MatrixOrder::Append );
// List the matrix elements to the screen.
ListMatrixElements( e, myMatrix, "Scaled and Translated Matrix", 6, 20 );
// Apply the transform to the array.
myMatrix->TransformVectors( myArray );
// Draw the Points to the screen again after applying the
// transform.
e->Graphics->DrawLines( myPen2, myArray );
}
//-------------------------------------------------------
// This function is a helper function to
// list the contents of a matrix.
//-------------------------------------------------------
void ListMatrixElements( PaintEventArgs^ e, Matrix^ matrix, String^ matrixName, int numElements, int y )
{
// Set up variables for drawing the array
// of points to the screen.
int i;
float x = 20,X = 200;
System::Drawing::Font^ myFont = gcnew System::Drawing::Font( "Arial",8 );
SolidBrush^ myBrush = gcnew SolidBrush( Color::Black );
// Draw the matrix name to the screen.
e->Graphics->DrawString( String::Concat( matrixName, ": " ), myFont, myBrush, (float)x, (float)y );
// Draw the set of path points and types to the screen.
for ( i = 0; i < numElements; i++ )
{
e->Graphics->DrawString( String::Concat( matrix->Elements[ i ], ", " ), myFont, myBrush, (float)X, (float)y );
X += 30;
}
}
public void TransformVectorsExample(PaintEventArgs e)
{
Pen myPen = new Pen(Color.Blue, 1);
Pen myPen2 = new Pen(Color.Red, 1);
// Create an array of points.
Point[] myArray =
{
new Point(20, 20),
new Point(120, 20),
new Point(120, 120),
new Point(20, 120),
new Point(20,20)
};
// Draw the Points to the screen before applying the
// transform.
e.Graphics.DrawLines(myPen, myArray);
// Create a matrix, scale it, and translate it.
Matrix myMatrix = new Matrix();
myMatrix.Scale(3, 2, MatrixOrder.Append);
myMatrix.Translate(100, 100, MatrixOrder.Append);
// List the matrix elements to the screen.
ListMatrixElements(e,
myMatrix,
"Scaled and Translated Matrix",
6,
20);
// Apply the transform to the array.
myMatrix.TransformVectors(myArray);
// Draw the Points to the screen again after applying the
// transform.
e.Graphics.DrawLines(myPen2, myArray);
}
//-------------------------------------------------------
// This function is a helper function to
// list the contents of a matrix.
//-------------------------------------------------------
public void ListMatrixElements(
PaintEventArgs e,
Matrix matrix,
string matrixName,
int numElements,
int y)
{
// Set up variables for drawing the array
// of points to the screen.
int i;
float x = 20, X = 200;
Font myFont = new Font("Arial", 8);
SolidBrush myBrush = new SolidBrush(Color.Black);
// Draw the matrix name to the screen.
e.Graphics.DrawString(
matrixName + ": ",
myFont,
myBrush,
x,
y);
// Draw the set of path points and types to the screen.
for(i=0; i<numElements; i++)
{
e.Graphics.DrawString(
matrix.Elements[i].ToString() + ", ",
myFont,
myBrush,
X,
y);
X += 30;
}
}
Public Sub TransformVectorsExample(ByVal e As PaintEventArgs)
Dim myPen As New Pen(Color.Blue, 1)
Dim myPen2 As New Pen(Color.Red, 1)
' Create an array of points.
Dim myArray As Point() = {New Point(20, 20), New Point(120, 20), _
New Point(120, 120), New Point(20, 120), New Point(20, 20)}
' Draw the Points to the screen before applying the
' transform.
e.Graphics.DrawLines(myPen, myArray)
' Create a matrix and scale it.
Dim myMatrix As New Matrix
myMatrix.Scale(3, 2, MatrixOrder.Append)
myMatrix.Translate(100, 100, MatrixOrder.Append)
ListMatrixElementsHelper(e, myMatrix, _
"Scaled and Translated Matrix", 6, 20)
myMatrix.TransformVectors(myArray)
' Draw the Points to the screen again after applying the
' transform.
e.Graphics.DrawLines(myPen2, myArray)
End Sub
' A helper function to list the contents of a matrix.
Public Sub ListMatrixElementsHelper(ByVal e As PaintEventArgs, _
ByVal matrix As Matrix, ByVal matrixName As String, ByVal numElements As Integer, _
ByVal y As Integer)
' Set up variables for drawing the array
' of points to the screen.
Dim i As Integer
Dim x As Single = 20
Dim j As Single = 200
Dim myFont As New Font("Arial", 8)
Dim myBrush As New SolidBrush(Color.Black)
' Draw the matrix name to the screen.
e.Graphics.DrawString(matrixName + ": ", myFont, myBrush, x, y)
' Draw the set of path points and types to the screen.
For i = 0 To numElements - 1
e.Graphics.DrawString(matrix.Elements(i).ToString() + ", ", _
myFont, myBrush, j, y)
j += 30
Next i
End Sub
S’applique à
TransformVectors(PointF[])
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
Multiplie chaque vecteur dans un tableau par la matrice. Les éléments de traduction de cette matrice (troisième ligne) sont ignorés.
public:
void TransformVectors(cli::array <System::Drawing::PointF> ^ pts);
public:
void TransformVectors(... cli::array <System::Drawing::PointF> ^ pts);
public void TransformVectors (System.Drawing.PointF[] pts);
public void TransformVectors (params System.Drawing.PointF[] pts);
member this.TransformVectors : System.Drawing.PointF[] -> unit
Public Sub TransformVectors (pts As PointF())
Public Sub TransformVectors (ParamArray pts As PointF())
Paramètres
Exemples
Pour obtenir un exemple, consultez TransformVectors(Point[]).
S’applique à
TransformVectors(ReadOnlySpan<Point>)
- Source:
- Matrix.cs
public:
void TransformVectors(ReadOnlySpan<System::Drawing::Point> pts);
public void TransformVectors (scoped ReadOnlySpan<System.Drawing.Point> pts);
member this.TransformVectors : ReadOnlySpan<System.Drawing.Point> -> unit
Public Sub TransformVectors (pts As ReadOnlySpan(Of Point))
Paramètres
- pts
- ReadOnlySpan<Point>
S’applique à
TransformVectors(ReadOnlySpan<PointF>)
- Source:
- Matrix.cs
public:
void TransformVectors(ReadOnlySpan<System::Drawing::PointF> pts);
public void TransformVectors (scoped ReadOnlySpan<System.Drawing.PointF> pts);
member this.TransformVectors : ReadOnlySpan<System.Drawing.PointF> -> unit
Public Sub TransformVectors (pts As ReadOnlySpan(Of PointF))
Paramètres
- pts
- ReadOnlySpan<PointF>