GraphicsPathIterator.HasCurve Methode

Definitie

Hiermee wordt aangegeven of het pad dat aan dit GraphicsPathIterator pad is gekoppeld een curve bevat.

public:
 bool HasCurve();
public bool HasCurve();
member this.HasCurve : unit -> bool
Public Function HasCurve () As Boolean

Retouren

Deze methode retourneert true als het huidige subpad een curve bevat; falseanders.

Voorbeelden

Het volgende voorbeeld is ontworpen voor gebruik met Windows Forms en vereist PaintEventArgse, een OnPaint-gebeurtenisobject. De code voert de volgende acties uit:

  • Hiermee maakt u een GraphicsPath object, myPath.

  • Hiermee voegt u drie regels, een rechthoek en een beletselteken toe.

  • Hiermee maakt u een GraphicsPathIterator object voor myPath.

  • Tests om te zien of het huidige pad myPath een curve bevat.

  • Geeft het resultaat van de test weer in een berichtvak.

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

Opmerkingen

Alle curven in een pad worden opgeslagen als reeksen van Bézier splines. Wanneer u bijvoorbeeld een weglatingsteken toevoegt aan een pad, geeft u de linkerbovenhoek, de breedte en de hoogte van de begrenzingsrechthoek van het beletselteken op. Deze getallen (linkerbovenhoek, breedte en hoogte) worden niet opgeslagen in het pad; in plaats daarvan; het beletselteken wordt omgezet in een reeks van vier Bézier splines. Het pad slaat de eindpunten en besturingspunten van deze Bézier-splines op.

In een pad wordt een matrix met gegevenspunten opgeslagen, die allemaal deel uitmaken van een lijn of een Bézier-spline. Als sommige van de punten in de matrix deel uitmaken van Bézier splines, retourneert HasCurvetrueu . Als alle punten in de matrix deel uitmaken van lijnen, wordt HasCurve het resultaat geretourneerd false.

Bepaalde methoden maken een pad plat, wat betekent dat alle curven in het pad worden geconverteerd naar reeksen lijnen. Nadat een pad is afgevlakt, HasCurve keert u altijd terug false. Als u de Flatten, Widenof Warp methode van de GraphicsPath klasse aanroept, wordt een pad afgevlakt.

Van toepassing op