C# GDI+編程之剖析startAngle和sweepAngle

  以DrawArc爲例,它有一種形式以下的構造函數html

public void DrawArc(Pen pen, Rectangle rect, float startAngle, float sweepAngle);

  對於startAngle和sweepAngle,MSDN對它的解釋是編程

    startAngle: 從 x 軸到弧線的起始點沿順時針方向度量的角(以度爲單位)。函數

    sweepAngle:從 startAngle 參數到弧線的結束點沿順時針方向度量的角(以度爲單位)。spa

  可能博主理解力不怎麼樣,一直不明白X軸到弧線起始點應該怎麼計算,後面查了一些資料才弄明白了,經過下面例子來具體剖析code

  

private void button1_Click(object sender, EventArgs e)
        {
            Graphics graphics = CreateGraphics();
            Pen myPen = new Pen(Color.Red);
            Pen pen1 = new Pen(Color.Green,3);
            Rectangle rec1 = new Rectangle(50,50, 100, 60);   
            graphics.DrawRectangle(myPen, rec1);    //繪製矩形
            graphics.DrawArc(pen1, rec1, 0, 90);    //繪製圓弧
        }

當點擊button1後,效果以下htm

這是怎麼來的呢?其實很簡單,首先在矩形的中點創建一個座標系,圓弧起點到中點的連線與X軸的夾角爲startAngle,圓弧的起點、終點分別和rect定義的矩形的中點連線,兩條線段之間夾角就是sweepAngleblog

 

起點到O的連線與X軸的夾角爲startAngle,終點到O的連線與起點到O的連線的夾角爲sweepAngle。get

當角度取負值的時候,表示逆時針方向,不然都爲順時針方向,如將上例中的sweepAngle改爲-90,即博客

graphics.DrawArc(pen1, rec1, 0, -90);

則結果以下class

 

若是對GDI+有興趣,能夠參閱我以前寫的博客 GDI+ 編程之繪圖

相關文章
相關標籤/搜索