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();
}