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 untergeordnete Pfad eine Kurve enthält, andernfalls false
.
Beispiele
Das folgende Beispiel ist für die Verwendung mit Windows Forms konzipiert 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 Auslassungspunkte hinzu.
Erstellt ein GraphicsPathIterator -Objekt für
myPath
.Testet, 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 beispielsweise einem Pfad eine Ellipse hinzufügen, geben Sie die obere linke Ecke, die Breite und die Höhe des begrenzungsenden Rechtecks der Ellipse an. Diese Zahlen (obere linke Ecke, Breite und Höhe) werden nicht im Pfad gespeichert. Statt; 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, wird zurückgegeben HasCurvetrue
. Wenn alle Punkte im Array zu Zeilen gehören, wird zurückgegeben HasCurvefalse
.
Bestimmte Methoden flachen einen Pfad ab, was bedeutet, dass alle Kurven im Pfad in Zeilensequenzen konvertiert werden. Nachdem ein Pfad geflacht wurde, HasCurve wird immer zurückgegeben false
. Durch Das Aufrufen der Flatten- oder WidenWarp -Methode der GraphicsPath -Klasse wird ein Pfad abgeflacht.
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für