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