c# 動態繪制直線和曲線


c# 動態繪制直線和曲線

 

在本案例中利用Graphics對象動態地繪制直線和曲線。程序運行后,選擇“直線”單選按鈕,然后按下鼠標左鍵拖動鼠標就可以繪制直線,選擇“曲線”單選按鈕,然后移動鼠標就可以繪制曲線。

制作要點:

1.Graphics對象的應用。

2.窗體的MouseUp事件和MouseDown事件的應用。

3.窗體的MouseMove事件的應用。

4.Graphics對象的DrawLine()方法的應用。

  該方法可以繪制一條線條,其語法結構如下:

       public void DrawLine(System.Drawing.Pen pen,float x1,float y1,float x2,float y2)

  各參數意義如下:

  1).pen:System.Drawing.Pen,他確定線條的顏色、寬度和樣式。

  2).x1:第一個點的x坐標。

  3).y1:第一個點的y坐標。

  4).x2:第二個點的x坐標。

  5).y2:第二個點的y坐標。

5.Graphics對象的DrawRectangle()方法的應用。

該方法可以繪制由坐標對、寬度和高度指定的矩形,其語法結構如下:

   public void DrawRectangle(System.Drawing.Pen pen,float x,float y,float width,float height)

各參數意義如下:

1)pen: System.Drawing.Pen,它確定矩形的顏色、寬度和樣式。

2)x:要繪制的矩形的左上角的x坐標。

3)y:要繪制的矩形的左上角的y坐標。

4)width:要繪制的矩形的寬度。

5)height:要繪制的矩形的高度。

制作步驟:

1.新建一個Windows窗體應用程序,設置"Text"屬性為“動態繪制直線和曲線”。

2.添加一個GroupBox控件。設置'Text"屬性為“請選擇繪圖類型”。

3.添加2個RadioButton控件,設置"Text"屬性分別為“直線”和“曲線”。

4.添加2個按鈕。設置其"Text"屬性為“清空”和“退出”。

添加代碼:

1.雙擊窗體。定義公共變量。

        int startX;     //獲取鼠標起始點的X坐標
        int startY;    //獲取鼠標起始點的Y坐標
        Graphics g;  //定義Graphics對象實例

2.雙擊窗體,添加:

private void Form1_Load(object sender, EventArgs e)
        {
            this.StartPosition = FormStartPosition.CenterScreen;
            this.BackColor = Color.Snow;         //設置窗體背景顏色
        }

3.分別選擇選擇窗體事件中的“MouseUp”、"MouseDown"、"MouseMove"事件。添加如下代碼:

 private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            g = this.CreateGraphics();               //創建Graphics對象實例
            Pen p = new Pen(Color.Red,4);      //設置畫筆顏色和寬度
            if (radioButton1.Checked == true)
            {
                g.DrawLine(p, startX, startY, e.X, e.Y);  //繪制直線
            }
        }

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            startX = e.X;       //為變量賦值
            startY = e.Y;
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            g = this.CreateGraphics();
            Pen p = new Pen(Color.Blue,2);       //設置畫筆顏色和寬度
            if (radioButton2.Checked == true)
            {
                g.DrawRectangle(p,e.X,e.Y,1,1);    //繪制曲線
            }
        }

4.分別雙擊“清空”和“退出”按鈕,添加:

private void button1_Click(object sender, EventArgs e)
        {
            g = this.CreateGraphics();
            g.Clear(Color.Snow);       //清空窗體背景
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
            Application.Exit();
        }

 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM