GraphicsPathIterator.HasCurve Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt an, ob der diesem GraphicsPathIterator zugeordnete Pfad eine Kurve enthält.
public:
bool HasCurve();
public bool HasCurve ();
member this.HasCurve : unit -> bool
Public Function HasCurve () As Boolean
Gibt zurück
Diese Methode gibt true
zurück, wenn der aktuelle Unterpfad eine Kurve enthält; andernfalls false
.
Beispiele
Das folgende Beispiel wurde für die Verwendung mit Windows Forms entwickelt und erfordert PaintEventArgse
, ein OnPaint-Ereignisobjekt. Der Code führt die folgenden Aktionen aus:
Erstellt ein GraphicsPath -Objekt,
myPath
.Fügt drei Linien, ein Rechteck und eine Ellipse hinzu.
Erstellt ein GraphicsPathIterator -Objekt für
myPath
.Überprüft, ob der aktuelle Pfad
myPath
eine Kurve enthält.Zeigt das Ergebnis des Tests in einem Meldungsfeld an.
private:
void HasCurveExample( PaintEventArgs^ /*e*/ )
{
// Create a path and add three lines,
// a rectangle and an ellipse.
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);
myPath->AddLines( myPoints );
myPath->AddRectangle( myRect );
myPath->AddEllipse( 220, 220, 100, 100 );
// Create a GraphicsPathIterator for myPath.
GraphicsPathIterator^ myPathIterator = gcnew GraphicsPathIterator( myPath );
// Test for a curve.
bool myHasCurve = myPathIterator->HasCurve();
// Show the test result.
MessageBox::Show( myHasCurve.ToString() );
}
private void HasCurveExample(PaintEventArgs e)
{
// Create a path and add three lines,
// a rectangle and an ellipse.
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);
myPath.AddLines(myPoints);
myPath.AddRectangle(myRect);
myPath.AddEllipse(220, 220, 100, 100);
// Create a GraphicsPathIterator for myPath.
GraphicsPathIterator myPathIterator = new
GraphicsPathIterator(myPath);
// Test for a curve.
bool myHasCurve = myPathIterator.HasCurve();
// Show the test result.
MessageBox.Show(myHasCurve.ToString());
}
Public Sub HasCurveExample(ByVal e As PaintEventArgs)
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)
myPath.AddLines(myPoints)
myPath.AddRectangle(myRect)
myPath.AddEllipse(220, 220, 100, 100)
' Create a GraphicsPathIterator for myPath.
Dim myPathIterator As New GraphicsPathIterator(myPath)
Dim myHasCurve As Boolean = myPathIterator.HasCurve()
MessageBox.Show(myHasCurve.ToString())
End Sub
Hinweise
Alle Kurven in einem Pfad werden als Sequenzen von Bézier splines gespeichert. Wenn Sie z. B. einen Ellipsen zu einem Pfad hinzufügen, geben Sie die obere linke Ecke, die Breite und die Höhe des umgebenden Rechtecks der Ellipse an. Diese Zahlen (obere linke Ecke, Breite und Höhe) werden nicht im Pfad gespeichert; stattdessen; die Ellipse wird in eine Sequenz von vier Bézier splines konvertiert. Der Pfad speichert die Endpunkte und Kontrollpunkte dieser Bézier splines.
Ein Pfad speichert ein Array von Datenpunkten, die jeweils zu einer Linie oder einer Bézier-Spline gehören. Wenn einige der Punkte im Array zu Bézier splines gehören, gibt HasCurvetrue
zurück. Wenn alle Punkte im Array zu Linien gehören, gibt HasCurvefalse
zurück.
Bestimmte Methoden flachten einen Pfad, was bedeutet, dass alle Kurven im Pfad in Zeilenabfolgen konvertiert werden. Nachdem ein Pfad abgeflacht wurde, wird HasCurve immer false
zurückgegeben. Durch Aufrufen der Flatten-, Widen- oder Warp-Methode der GraphicsPath Klasse wird ein Pfad flacher.