共用方式為


GraphicsPathIterator.HasCurve 方法

定義

指出與此 GraphicsPathIterator 相關聯的路徑是否包含曲線。

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

傳回

如果目前的子路徑包含曲線,這個方法會傳回 true;否則,false

範例

下列範例的設計目的是要與 Windows Forms 搭配使用,而且需要 PaintEventArgseOnPaint 事件物件。 程式代碼會執行下列動作:

  • 建立 GraphicsPath 物件,myPath

  • 新增三行、矩形和橢圓形。

  • myPath建立 GraphicsPathIterator 物件。

  • 測試以查看目前路徑 myPath 是否包含曲線。

  • 在消息框中顯示測試的結果。

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

備註

路徑中的所有曲線都會儲存為貝氏曲線序列。 例如,當您將橢圓形新增至路徑時,您可以指定左上角、寬度和橢圓周框的高度。 這些數位(左上角、寬度和高度)不會儲存在路徑中:相反;橢圓形會轉換成四個貝氏曲線的序列。 路徑會儲存這些 Bézier 曲線的端點和控制點。

路徑會儲存數據點陣列,每個數據點都屬於線條或貝塞爾曲線。 如果陣列中的某些點屬於貝氏曲線,則 HasCurve 會傳回 true。 如果陣列中的所有點都屬於行,則 HasCurve 會傳回 false

某些方法會將路徑扁平化,這表示路徑中的所有曲線都會轉換成線條序列。 扁平化路徑之後,HasCurve 一律會傳回 false。 呼叫 GraphicsPath 類別的 FlattenWidenWarp 方法,將會扁平化路徑。

適用於