Partager via


GraphicsPathIterator.HasCurve Méthode

Définition

Indique si le chemin associé à cette GraphicsPathIterator contient une courbe.

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

Retours

Cette méthode retourne true si le sous-chemin actuel contient une courbe ; sinon, false.

Exemples

L’exemple suivant est conçu pour une utilisation avec Windows Forms et nécessite PaintEventArgse, un objet d’événement OnPaint. Le code effectue les actions suivantes :

  • Crée un objet GraphicsPath, myPath.

  • Ajoute trois lignes, un rectangle et un ellipse.

  • Crée un objet GraphicsPathIterator pour myPath.

  • Teste pour voir si le chemin actuel myPath contient une courbe.

  • Affiche le résultat du test dans une boîte de message.

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

Remarques

Toutes les courbes d’un chemin sont stockées sous forme de séquences de splines de Bézier. Par exemple, lorsque vous ajoutez un ellipse à un chemin, vous spécifiez l’angle supérieur gauche, la largeur et la hauteur du rectangle englobant de l’ellipse. Ces nombres (angle supérieur gauche, largeur et hauteur) ne sont pas stockés dans le chemin ; au lieu de; l’ellipse est converti en une séquence de quatre splines de Bézier. Le chemin stocke les points de terminaison et les points de contrôle de ces splines de Bézier.

Un chemin stocke un tableau de points de données, chacun appartenant à une ligne ou à une spline de Bézier. Si certains des points du tableau appartiennent aux splines de Bézier, HasCurve retourne true. Si tous les points du tableau appartiennent à des lignes, HasCurve retourne false.

Certaines méthodes aplatissent un chemin, ce qui signifie que toutes les courbes du chemin sont converties en séquences de lignes. Une fois qu’un chemin d’accès a été aplati, HasCurve retournera toujours false. L’appel de la méthode Flatten, Widenou Warp de la classe GraphicsPath aplatit un chemin d’accès.

S’applique à