C#画直线的代码!(和windows画图工具一样的效果*)我的代码不对,不是射线状,就是没有画的过程.怎么样实现在屏幕上一点,拖出一个可变的直线,像橡皮条,松开后确定的那种!private void Drawing_Mous
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/28 12:37:06
![C#画直线的代码!(和windows画图工具一样的效果*)我的代码不对,不是射线状,就是没有画的过程.怎么样实现在屏幕上一点,拖出一个可变的直线,像橡皮条,松开后确定的那种!private void Drawing_Mous](/uploads/image/z/7531623-63-3.jpg?t=C%23%E7%94%BB%E7%9B%B4%E7%BA%BF%E7%9A%84%E4%BB%A3%E7%A0%81%21%EF%BC%88%E5%92%8Cwindows%E7%94%BB%E5%9B%BE%E5%B7%A5%E5%85%B7%E4%B8%80%E6%A0%B7%E7%9A%84%E6%95%88%E6%9E%9C%2A%EF%BC%89%E6%88%91%E7%9A%84%E4%BB%A3%E7%A0%81%E4%B8%8D%E5%AF%B9%2C%E4%B8%8D%E6%98%AF%E5%B0%84%E7%BA%BF%E7%8A%B6%2C%E5%B0%B1%E6%98%AF%E6%B2%A1%E6%9C%89%E7%94%BB%E7%9A%84%E8%BF%87%E7%A8%8B.%E6%80%8E%E4%B9%88%E6%A0%B7%E5%AE%9E%E7%8E%B0%E5%9C%A8%E5%B1%8F%E5%B9%95%E4%B8%8A%E4%B8%80%E7%82%B9%2C%E6%8B%96%E5%87%BA%E4%B8%80%E4%B8%AA%E5%8F%AF%E5%8F%98%E7%9A%84%E7%9B%B4%E7%BA%BF%2C%E5%83%8F%E6%A9%A1%E7%9A%AE%E6%9D%A1%2C%E6%9D%BE%E5%BC%80%E5%90%8E%E7%A1%AE%E5%AE%9A%E7%9A%84%E9%82%A3%E7%A7%8D%21private+void+Drawing_Mous)
C#画直线的代码!(和windows画图工具一样的效果*)我的代码不对,不是射线状,就是没有画的过程.怎么样实现在屏幕上一点,拖出一个可变的直线,像橡皮条,松开后确定的那种!private void Drawing_Mous
C#画直线的代码!(和windows画图工具一样的效果*)
我的代码不对,不是射线状,就是没有画的过程.怎么样实现在屏幕上一点,拖出一个可变的直线,像橡皮条,松开后确定的那种!
private void Drawing_MouseDown(object sender,MouseEventArgs e)
{
if ((isDrawing = isDrawing) == true)//判断是否开始绘图
{
startPoint = new Point(e.X,e.Y);
}
}
private void Drawing_MouseMove(object sender,MouseEventArgs e)
{
Graphics g = this.Drawing.CreateGraphics();
if (isDrawing)
{
switch (drawTool)
{
case drawTools.Line:
using (Pen p = new Pen(foreColor,1))
{
graphics.DrawLine(p,startPoint,endPoint);
}
break;
}
}
private void Drawing_MouseUp(object sender,MouseEventArgs e)
{
isDrawing = false;//标识变量
graphics = this.Drawing.CreateGraphics();
switch (drawTool)
{
case drawTools.Line:
using (Pen p = new Pen(foreColor,1))
{
graphics.DrawLine(p,startPoint,new Point(e.X,e.Y));
}
break;
}
}
}
我没有单写类,需不需要单写个类啊?DDA算法是解决我这个问题的么?
C#画直线的代码!(和windows画图工具一样的效果*)我的代码不对,不是射线状,就是没有画的过程.怎么样实现在屏幕上一点,拖出一个可变的直线,像橡皮条,松开后确定的那种!private void Drawing_Mous
我这里是画直线和画曲线的两种都有,楼主看看,错不了的,代码如下:
namespace Case02_1
{
public partial class Form1 : Form
{
int startX; //获取鼠标起始点的X坐标
int startY; //获取鼠标起始点的Y坐标
Graphics g; //定义Graphics对象实例
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.StartPosition = FormStartPosition.CenterScreen;
this.BackColor = Color.Snow;
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
g = this.CreateGraphics();
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);
}
}
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();
}
}
}