GraphicsPathIterator.HasCurve Yöntem

Tanım

Bu GraphicsPathIterator ile ilişkilendirilmiş yolun eğri içerip içermediğini gösterir.

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

Döndürülenler

Bu yöntem, geçerli alt yol bir eğri içeriyorsa true döndürür; aksi takdirde false.

Örnekler

Aşağıdaki örnek, Windows Forms ile kullanılmak üzere tasarlanmıştır ve OnPaint bir olay nesnesi PaintEventArgsegerektirir. Kod aşağıdaki eylemleri gerçekleştirir:

  • myPathbir GraphicsPath nesnesi oluşturur.

  • Üç çizgi, bir dikdörtgen ve üç nokta ekler.

  • myPathiçin bir GraphicsPathIterator nesnesi oluşturur.

  • Geçerli yolun myPath eğri içerip içermediğini sınar.

  • Testin sonucunu bir ileti kutusunda gösterir.

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

Açıklamalar

Bir yoldaki tüm eğriler Bézier eğrilerinin dizileri olarak depolanır. Örneğin, bir yola üç nokta eklediğinizde, sol üst köşeyi, genişliği ve üç noktanın sınırlayıcı dikdörtgeninin yüksekliğini belirtirsiniz. Bu sayılar (sol üst köşe, genişlik ve yükseklik) yolda depolanmaz; yerine; üç nokta dört Bézier splines dizisine dönüştürülür. Yol, bu Bézier spline'larının uç noktalarını ve denetim noktalarını depolar.

Yol, her biri bir satıra veya Bézier spline'a ait olan bir veri noktaları dizisi depolar. Dizideki bazı noktalar Bézier splines'a aitse, HasCurvetruedöndürür. Dizideki tüm noktalar satırlara aitse, HasCurvefalsedöndürür.

Bazı yöntemler bir yolu düzleştirme, bu da yoldaki tüm eğrilerin çizgi dizilerine dönüştürüldüğü anlamına gelir. Bir yol düzlendikten sonra, HasCurve her zaman falsedöndürür. GraphicsPath sınıfının Flatten, Widenveya Warp yöntemini çağırmak bir yolu düzleştirmeye neden olur.

Şunlara uygulanır