GraphicsPathIterator.NextMarker Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Sposta l'iteratore sul marcatore successivo nel percorso.
Overload
NextMarker(GraphicsPath) |
A questo oggetto GraphicsPathIterator è associato un oggetto GraphicsPath. Il metodo NextMarker(GraphicsPath) incrementa il GraphicsPath associato al marcatore successivo nel percorso e copia tutti i punti contenuti tra il marcatore corrente e il marcatore successivo (o la fine del percorso) a un secondo oggetto GraphicsPath passato al parametro . |
NextMarker(Int32, Int32) |
Incrementa il GraphicsPathIterator al marcatore successivo nel percorso e restituisce gli indici di inizio e arresto tramite i parametri [out]. |
NextMarker(GraphicsPath)
- Origine:
- GraphicsPathIterator.cs
- Origine:
- GraphicsPathIterator.cs
- Origine:
- GraphicsPathIterator.cs
A questo oggetto GraphicsPathIterator è associato un oggetto GraphicsPath. Il metodo NextMarker(GraphicsPath) incrementa il GraphicsPath associato al marcatore successivo nel percorso e copia tutti i punti contenuti tra il marcatore corrente e il marcatore successivo (o la fine del percorso) a un secondo oggetto GraphicsPath passato al parametro .
public:
int NextMarker(System::Drawing::Drawing2D::GraphicsPath ^ path);
public int NextMarker (System.Drawing.Drawing2D.GraphicsPath path);
member this.NextMarker : System.Drawing.Drawing2D.GraphicsPath -> int
Public Function NextMarker (path As GraphicsPath) As Integer
Parametri
- path
- GraphicsPath
Oggetto GraphicsPath in cui verranno copiati i punti.
Restituisce
Numero di punti tra questo marcatore e il successivo.
Esempio
L'esempio seguente è progettato per l'uso con Windows Form e richiede PaintEventArgse
, un oggetto evento OnPaint. Il codice esegue le azioni seguenti:
Crea un oggetto GraphicsPath.
Aggiunge tre linee, un rettangolo, un'ellisse e due marcatori.
Elenca i valori di tutti i punti del percorso sul lato sinistro dello schermo.
Crea un oggetto GraphicsPathIterator.
Crea un oggetto GraphicsPath,
myPathSection
, per ricevere punti copiati.Chiama il metodo NextMarker, che esegue l'iterazione al primo marcatore e copia tutti i punti contenuti tra tale marcatore e accanto a
myPathSection
.Restituisce il numero di punti copiati in
markerPoints
.Elenca il numero di marcatore (il primo marcatore) e il numero di punti che contiene sul lato destro dello schermo.
public:
void NextMarkerExample2( PaintEventArgs^ e )
{
// Create a graphics path.
GraphicsPath^ myPath = gcnew GraphicsPath;
// Set up primitives to add to myPath.
array<Point>^ myPoints = {Point(20,20),Point(120,120),Point(20,120),Point(20,20)};
Rectangle myRect = Rectangle(120,120,100,100);
// Add 3 lines, a rectangle, an ellipse, and 2 markers.
myPath->AddLines( myPoints );
myPath->SetMarkers();
myPath->AddRectangle( myRect );
myPath->SetMarkers();
myPath->AddEllipse( 220, 220, 100, 100 );
// Get the total number of points for the path,
// and the arrays of the points and types.
int myPathPointCount = myPath->PointCount;
array<PointF>^myPathPoints = myPath->PathPoints;
array<Byte>^myPathTypes = myPath->PathTypes;
// Set up variables for listing all the values of the path's
// points to the screen.
int i;
float j = 20;
System::Drawing::Font^ myFont = gcnew System::Drawing::Font( "Arial",8 );
SolidBrush^ myBrush = gcnew SolidBrush( Color::Black );
// List the values for all of path points and types to
// the left side of the screen.
for ( i = 0; i < myPathPointCount; i++ )
{
e->Graphics->DrawString( myPathPoints[ i ].X + ", " + myPathPoints[ i ].Y + ", " + myPathTypes[ i ], myFont, myBrush, 20, j );
j += 20;
}
// Create a GraphicsPathIterator.
GraphicsPathIterator^ myPathIterator = gcnew GraphicsPathIterator( myPath );
// Rewind the iterator.
myPathIterator->Rewind();
// Create a GraphicsPath to receive a section of myPath.
GraphicsPath^ myPathSection = gcnew GraphicsPath;
// Retrieve and list the number of points contained in
// the first marker to the right side of the screen.
int markerPoints;
markerPoints = myPathIterator->NextMarker( myPathSection );
e->Graphics->DrawString( String::Format( "Marker: 1 Num Points: {0}", markerPoints ), myFont, myBrush, 200, 20 );
}
public void NextMarkerExample2(PaintEventArgs e)
{
// Create a graphics path.
GraphicsPath myPath = new GraphicsPath();
// Set up primitives to add to myPath.
Point[] myPoints = {new Point(20, 20), new Point(120, 120),
new Point(20, 120),new Point(20, 20) };
Rectangle myRect = new Rectangle(120, 120, 100, 100);
// Add 3 lines, a rectangle, an ellipse, and 2 markers.
myPath.AddLines(myPoints);
myPath.SetMarkers();
myPath.AddRectangle(myRect);
myPath.SetMarkers();
myPath.AddEllipse(220, 220, 100, 100);
// Get the total number of points for the path,
// and the arrays of the points and types.
int myPathPointCount = myPath.PointCount;
PointF[] myPathPoints = myPath.PathPoints;
byte[] myPathTypes = myPath.PathTypes;
// Set up variables for listing all the values of the path's
// points to the screen.
int i;
float j = 20;
Font myFont = new Font("Arial", 8);
SolidBrush myBrush = new SolidBrush(Color.Black);
// List the values for all of path points and types to
// the left side of the screen.
for(i=0; i < myPathPointCount; i++)
{
e.Graphics.DrawString(myPathPoints[i].X.ToString()+
", " + myPathPoints[i].Y.ToString() + ", " +
myPathTypes[i].ToString(), myFont, myBrush,
20, j);
j+=20;
}
// Create a GraphicsPathIterator.
GraphicsPathIterator myPathIterator = new
GraphicsPathIterator(myPath);
// Rewind the iterator.
myPathIterator.Rewind();
// Create a GraphicsPath to receive a section of myPath.
GraphicsPath myPathSection = new GraphicsPath();
// Retrieve and list the number of points contained in
// the first marker to the right side of the screen.
int markerPoints;
markerPoints = myPathIterator.NextMarker(myPathSection);
e.Graphics.DrawString("Marker: 1" + " Num Points: " +
markerPoints.ToString(), myFont, myBrush, 200, 20);
}
Public Sub NextMarkerExample2(ByVal e As PaintEventArgs)
' Create a graphics path.
Dim myPath As New GraphicsPath
' Set up primitives to add to myPath.
Dim myPoints As Point() = {New Point(20, 20), _
New Point(120, 120), New Point(20, 120), New Point(20, 20)}
Dim myRect As New Rectangle(120, 120, 100, 100)
' Add 3 lines, a rectangle, an ellipse, and 2 markers.
myPath.AddLines(myPoints)
myPath.SetMarkers()
myPath.AddRectangle(myRect)
myPath.SetMarkers()
myPath.AddEllipse(220, 220, 100, 100)
' Get the total number of points for the path,
' and the arrays of the points and types.
Dim myPathPointCount As Integer = myPath.PointCount
Dim myPathPoints As PointF() = myPath.PathPoints
Dim myPathTypes As Byte() = myPath.PathTypes
' Set up variables for drawing the array
' of points to the screen.
Dim i As Integer
Dim j As Single = 20
Dim myFont As New Font("Arial", 8)
Dim myBrush As New SolidBrush(Color.Black)
' Draw the set of path points and types to the screen.
For i = 0 To myPathPointCount - 1
e.Graphics.DrawString(myPathPoints(i).X.ToString() + _
", " + myPathPoints(i).Y.ToString() + ", " + _
myPathTypes(i).ToString(), myFont, myBrush, 20, j)
j += 20
Next i
' Create a GraphicsPathIterator.
Dim myPathIterator As New GraphicsPathIterator(myPath)
' Rewind the iterator.
myPathIterator.Rewind()
' Create a GraphicsPath section.
Dim myPathSection As New GraphicsPath
' List the points contained in the first marker
' to the screen.
Dim markerPoints As Integer
markerPoints = myPathIterator.NextMarker(myPathSection)
e.Graphics.DrawString("Marker: 1" + " Num Points: " + _
markerPoints.ToString(), myFont, myBrush, 200, 20)
End Sub
Commenti
Utilizzare il metodo SetMarkers per impostare i marcatori in un percorso. I marcatori vengono usati per creare gruppi di sottopercorso. Uno o più percorsi secondari possono essere compresi tra due marcatori.
Si applica a
NextMarker(Int32, Int32)
- Origine:
- GraphicsPathIterator.cs
- Origine:
- GraphicsPathIterator.cs
- Origine:
- GraphicsPathIterator.cs
Incrementa il GraphicsPathIterator al marcatore successivo nel percorso e restituisce gli indici di inizio e arresto tramite i parametri [out].
public:
int NextMarker([Runtime::InteropServices::Out] int % startIndex, [Runtime::InteropServices::Out] int % endIndex);
public int NextMarker (out int startIndex, out int endIndex);
member this.NextMarker : int * int -> int
Public Function NextMarker (ByRef startIndex As Integer, ByRef endIndex As Integer) As Integer
Parametri
- startIndex
- Int32
[out] Il riferimento integer fornito a questo parametro riceve l'indice del punto che avvia un sottopercorso.
- endIndex
- Int32
[out] Il riferimento integer fornito a questo parametro riceve l'indice del punto che termina il sottopercorso a cui startIndex
punti.
Restituisce
Numero di punti tra questo marcatore e il successivo.
Esempio
L'esempio seguente è progettato per l'uso con Windows Form e richiede PaintEventArgse
, un oggetto evento OnPaint. Il codice esegue le azioni seguenti:
Crea un oggetto GraphicsPath.
Aggiunge tre linee, un rettangolo e un ellisse 3/4 con marcatori tra di essi.
Disegna i valori per la matrice di punti allo schermo.
Crea un oggetto GraphicsPathIterator.
Chiama il metodo NextMarker.
Usa i valori restituiti dalle chiamate iterative a NextMarker per disegnare i punti di inizio e di arresto per ogni marcatore sullo schermo.
Disegna il valore per il numero totale di punti sullo schermo.
private:
void NextMarkerExample( PaintEventArgs^ e )
{
// Create the GraphicsPath.
GraphicsPath^ myPath = gcnew GraphicsPath;
array<Point>^ myPoints = {Point(20,20),Point(120,120),Point(20,120),Point(20,20)};
Rectangle myRect = Rectangle(120,120,100,100);
// Add 3 lines, a rectangle, an ellipse, and 2 markers.
myPath->AddLines( myPoints );
myPath->SetMarkers();
myPath->AddRectangle( myRect );
myPath->SetMarkers();
myPath->AddEllipse( 220, 220, 100, 100 );
// Get the total number of points for the path,
// and the arrays of the points and types.
int myPathPointCount = myPath->PointCount;
array<PointF>^myPathPoints = myPath->PathPoints;
array<Byte>^myPathTypes = myPath->PathTypes;
// Set up variables for drawing the array
// of points to the screen.
int i;
float j = 20;
System::Drawing::Font^ myFont = gcnew System::Drawing::Font( "Arial",8 );
SolidBrush^ myBrush = gcnew SolidBrush( Color::Black );
// Draw the set of path points and types to the screen.
for ( i = 0; i < myPathPointCount; i++ )
{
e->Graphics->DrawString( myPathPoints[ i ].X + ", " + myPathPoints[ i ].Y + ", " + myPathTypes[ i ], myFont, myBrush, 20, j );
j += 20;
}
// Create a GraphicsPathIterator.
GraphicsPathIterator^ myPathIterator = gcnew GraphicsPathIterator( myPath );
int myStartIndex;
int myEndIndex;
// Rewind the Iterator.
myPathIterator->Rewind();
// Draw the Markers and their start and end points
// to the screen.
j = 20;
for ( i = 0; i < 3; i++ )
{
myPathIterator->NextMarker( myStartIndex, myEndIndex );
e->Graphics->DrawString( String::Format( "Marker {0}: Start: {1} End: {2}", i, myStartIndex, myEndIndex ),
myFont, myBrush, 200, j );
j += 20;
}
// Draw the total number of points to the screen.
j += 20;
int myPathTotalPoints = myPathIterator->Count;
e->Graphics->DrawString( String::Format( "Total Points = {0}", myPathTotalPoints ), myFont, myBrush, 200, j );
}
private void NextMarkerExample(PaintEventArgs e)
{
// Create the GraphicsPath.
GraphicsPath myPath = new GraphicsPath();
Point[] myPoints = {new Point(20, 20), new Point(120, 120),
new Point(20, 120),new Point(20, 20) };
Rectangle myRect = new Rectangle(120, 120, 100, 100);
// Add 3 lines, a rectangle, an ellipse, and 2 markers.
myPath.AddLines(myPoints);
myPath.SetMarkers();
myPath.AddRectangle(myRect);
myPath.SetMarkers();
myPath.AddEllipse(220, 220, 100, 100);
// Get the total number of points for the path,
// and the arrays of the points and types.
int myPathPointCount = myPath.PointCount;
PointF[] myPathPoints = myPath.PathPoints;
byte[] myPathTypes = myPath.PathTypes;
// Set up variables for drawing the array
// of points to the screen.
int i;
float j = 20;
Font myFont = new Font("Arial", 8);
SolidBrush myBrush = new SolidBrush(Color.Black);
// Draw the set of path points and types to the screen.
for(i=0; i<myPathPointCount; i++)
{
e.Graphics.DrawString(myPathPoints[i].X.ToString()+
", " + myPathPoints[i].Y.ToString() + ", " +
myPathTypes[i].ToString(),
myFont,
myBrush,
20,
j);
j+=20;
}
// Create a GraphicsPathIterator.
GraphicsPathIterator myPathIterator = new
GraphicsPathIterator(myPath);
int myStartIndex;
int myEndIndex;
// Rewind the Iterator.
myPathIterator.Rewind();
// Draw the Markers and their start and end points
// to the screen.
j=20;
for(i=0;i<3;i++)
{
myPathIterator.NextMarker(out myStartIndex, out myEndIndex);
e.Graphics.DrawString("Marker " + i.ToString() +
": Start: " + myStartIndex.ToString()+
" End: " + myEndIndex.ToString(),
myFont,
myBrush,
200,
j);
j += 20;
}
// Draw the total number of points to the screen.
j += 20;
int myPathTotalPoints = myPathIterator.Count;
e.Graphics.DrawString("Total Points = " +
myPathTotalPoints.ToString(),
myFont,
myBrush,
200,
j);
}
Public Sub NextMarkerExample(ByVal e As PaintEventArgs)
' Create the GraphicsPath.
Dim myPath As New GraphicsPath
Dim myPoints As Point() = {New Point(20, 20), _
New Point(120, 120), New Point(20, 120), New Point(20, 20)}
Dim myRect As New Rectangle(120, 120, 100, 100)
' Add 3 lines, a rectangle, an ellipse, and 2 markers.
myPath.AddLines(myPoints)
myPath.SetMarkers()
myPath.AddRectangle(myRect)
myPath.SetMarkers()
myPath.AddEllipse(220, 220, 100, 100)
' Get the total number of points for the path,
' and the arrays of the points and types.
Dim myPathPointCount As Integer = myPath.PointCount
Dim myPathPoints As PointF() = myPath.PathPoints
Dim myPathTypes As Byte() = myPath.PathTypes
' Set up variables for drawing the array of points to the screen.
Dim i As Integer
Dim j As Single = 20
Dim myFont As New Font("Arial", 8)
Dim myBrush As New SolidBrush(Color.Black)
' Draw the set of path points and types to the screen.
For i = 0 To myPathPointCount - 1
e.Graphics.DrawString(myPathPoints(i).X.ToString() + ", " + _
myPathPoints(i).Y.ToString() + ", " + _
myPathTypes(i).ToString(), myFont, myBrush, 20, j)
j += 20
Next i
' Create a GraphicsPathIterator.
Dim myPathIterator As New GraphicsPathIterator(myPath)
Dim myStartIndex As Integer
Dim myEndIndex As Integer
' Rewind the Iterator.
myPathIterator.Rewind()
' Draw the Markers and their start and end points to the screen.
j = 20
For i = 0 To 2
myPathIterator.NextMarker(myStartIndex, myEndIndex)
e.Graphics.DrawString("Marker " + i.ToString() + _
": Start: " + myStartIndex.ToString() + " End: " + _
myEndIndex.ToString(), myFont, myBrush, 200, j)
j += 20
Next i
' Draw the total number of points to the screen.
j += 20
Dim myPathTotalPoints As Integer = myPathIterator.Count
e.Graphics.DrawString("Total Points = " + _
myPathTotalPoints.ToString(), myFont, myBrush, 200, j)
End Sub
Commenti
Utilizzare il metodo SetMarkers per impostare i marcatori in un percorso. I marcatori vengono usati per creare gruppi di sottopercorso. Uno o più percorsi secondari possono essere compresi tra due marcatori.