c#实现的绘图工具

Silentgravity 2010-06-16 10:33:17
在c# 做的画图软件中 怎样去实现对 绘制几何形状 的实时显示?比如说是椭圆 在鼠标左键尚未释放之前 随着鼠标移动 椭圆的轨迹也会相应的发生变化 显示在频幕上! 有点急啊 麻烦高手们帮忙解决下
...全文
354 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
捷哥1999 2010-06-18
  • 打赏
  • 举报
回复
http://www.codeproject.com/KB/graphics/drawtools.aspx



这是CODEPROJECT上实现的一个画图程序,你可以参考
jianuMan 2010-06-18
  • 打赏
  • 举报
回复
23. Graphics gc = e.Graphics;
24. /// 设置绘图的颜色
29. Brush yellowBush = new SolidBrush(Color.Yellow);
30. // 绘制椭圆,其实圆时椭圆的特殊的一种,即两个定点重合, (50, 60)为左上角的坐标,
31. // 70位椭圆的宽度,100位椭圆的高度
32. gc.FillEllipse(yellowBush, 50, 60, 70, 100);
FillEllipse函数可以填充出一个椭圆,
50,60为左上角坐标,当你鼠标按下的时候,记录下当时的鼠标坐标,作为Point1, 拖动鼠标,当鼠标拖动的时候,得出鼠标当前坐标Point2。
你根据Point1,和Point2算一个椭圆的高度和宽度,高度就是Y值相见,宽度就是x值相减。

每次拖动的时候,将新的左上角坐标 PointA, 高度Height,宽度Width更新到Form的几个成员变量里面
Form的Paint函数里面依据上面的几个成员变量绘制椭圆。

给分吧



http://blog.csdn.net/jianuMan/archive/2010/06/18/5677839.aspx
Silentgravity 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
private void form1_MouseDown(object sender,MouseEventArgs e)
{
//记录坐标
Point p = new Point(e.X,e.Y);
Invalidate();
}
private void form1_Paint(object sender,PaintEventArgs e)
{Graphics g =……
[/Quote] 不行啊 你那个画直线的都是固定的啊 而且 在mousedown 中 只是记录的当时的 点 并没有使用啊
LeoMaya 2010-06-16
  • 打赏
  • 举报
回复
参考Paint.NET

http://www.oschina.net/p/paint.net
xu56180825 2010-06-16
  • 打赏
  • 举报
回复
根据鼠标移动,鼠标按下等事件判断,并同时更改园的大小,而已最好使用双倍缓冲
wuyq11 2010-06-16
  • 打赏
  • 举报
回复
private void form1_MouseDown(object sender,MouseEventArgs e)
{
//记录坐标
Point p = new Point(e.X,e.Y);
Invalidate();
}
private void form1_Paint(object sender,PaintEventArgs e)
{Graphics g = e.Graphics;
Pen p = new Pen(Color.Blue, 2);
g.DrawLine(p, 10, 10, 100, 100);
}
http://www.codeproject.com/KB/graphics/drawtools.aspx
dong3580 2010-06-16
  • 打赏
  • 举报
回复
貌似还得用click事件诶

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧