次の方法で共有


GraphicsPathIterator.NextMarker メソッド

反復子をパス内の次のマーカーに移動します。

オーバーロードの一覧

GraphicsPathIterator オブジェクトには、 GraphicsPath オブジェクトが関連付けられています。 NextMarker メソッドは、関連付けられている GraphicsPath オブジェクトのパス内の次のマーカーを指すように反復子をインクリメントし、現在のマーカーと次のマーカー (またはパスの終点) の間に含まれているすべての点を、パラメータに渡された 2 番目の GraphicsPath オブジェクトにコピーします。

[Visual Basic] Overloads Public Function NextMarker(GraphicsPath) As Integer

[C#] public int NextMarker(GraphicsPath);

[C++] public: int NextMarker(GraphicsPath*);

[JScript] public function NextMarker(GraphicsPath) : int;

GraphicsPathIterator オブジェクトをインクリメントしてパス内の次のマーカーに進め、出力パラメータを使用して開始インデックスと終了インデックスを返します。

[Visual Basic] Overloads Public Function NextMarker(ByRef Integer, ByRef Integer) As Integer

[C#] public int NextMarker(int, int);

[C++] public: int NextMarker(int, int);

[JScript] public function NextMarker(int, int) : int;

使用例

[Visual Basic, C#] 次の例は、Windows フォームでの使用を意図してデザインされており、 OnPaint イベントのオブジェクトである PaintEventArgs e が必要です。このコードは次のアクションを実行します。

  • GraphicsPath オブジェクトを作成します。
  • 3 本の直線、1 つの四角形、4 分の 3 サイズの楕円、および各図形の間にマーカーを追加します。
  • 画面に点の配列の値を描画します。
  • GraphicsPathIterator オブジェクトを作成します。
  • NextMarker メソッドを呼び出します。
  • NextMarker の反復呼び出しによって返された値を使用して、各マーカーの開始点と終了点を画面に描画します。
  • 画面に点の合計数を表す値を描画します。

[Visual Basic, C#] メモ   ここでは、NextMarker のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。

 
Public Sub NextMarkerExample(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
        
[C#] 
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);
}
        

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

参照

GraphicsPathIterator クラス | GraphicsPathIterator メンバ | System.Drawing.Drawing2D 名前空間