以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+ 編程之繪圖