Matrix.TransformVectors Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Mnoży każdy wektor w tablicy przez macierz. Elementy tłumaczenia tej macierzy (trzeci wiersz) są ignorowane.
Przeciążenia
TransformVectors(Point[]) |
Stosuje tylko składniki skalowania i obracania tego Matrix do określonej tablicy punktów. |
TransformVectors(PointF[]) |
Mnoży każdy wektor w tablicy przez macierz. Elementy tłumaczenia tej macierzy (trzeci wiersz) są ignorowane. |
TransformVectors(ReadOnlySpan<Point>) | |
TransformVectors(ReadOnlySpan<PointF>) |
TransformVectors(Point[])
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
Stosuje tylko składniki skalowania i obracania tego Matrix do określonej tablicy punktów.
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())
Parametry
Przykłady
Poniższy przykład kodu jest przeznaczony do użycia z formularzami Systemu Windows i wymaga PaintEventArgse
, obiektu zdarzenia Paint. Kod wykonuje następujące akcje:
Tworzy tablicę punktów, które tworzą prostokąt.
Rysuje tę tablicę punktów na ekranie przed zastosowaniem przekształcenia skalowania (niebieski prostokąt).
Tworzy macierz i skaluje ją o 3 na osi x i 2 na osi y i tłumaczy ją o 100 w obu osiach.
Wyświetla listę elementów macierzy na ekranie.
Stosuje tę transformację macierzy do tablicy punktów.
Rysuje przekształconą tablicę na ekran (czerwony prostokąt).
Zwróć uwagę, że czerwony prostokąt został przeskalowany według współczynnika 3 na osi x i o 2 w osi y, w tym lewego górnego rogu prostokąta (punktu początkowego prostokąta), ale wektor tłumaczenia (ostatnie dwa elementy macierzy) jest ignorowany.
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
Dotyczy
TransformVectors(PointF[])
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
Mnoży każdy wektor w tablicy przez macierz. Elementy tłumaczenia tej macierzy (trzeci wiersz) są ignorowane.
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())
Parametry
Przykłady
Aby zapoznać się z przykładem, zobacz TransformVectors(Point[]).
Dotyczy
TransformVectors(ReadOnlySpan<Point>)
- Źródło:
- 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))
Parametry
- pts
- ReadOnlySpan<Point>
Dotyczy
TransformVectors(ReadOnlySpan<PointF>)
- Źródło:
- 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))
Parametry
- pts
- ReadOnlySpan<PointF>