GraphicsPathIterator.HasCurve Methode

Definition

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 PaintEventArgseein 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: