c#简单绘画操作

一、要绘画就要有画布,如果我们是在PictureBox上画画的话,可以这样声明画布

Graphics g = Graphics.FromImage(this.pictureBox1.Image);

如果是在panel中绘画的话,可以这样写

Graphic g = this.panel1.CreateGraphics();

有了画布,一切就可以开始了,通过调用这个Graphics对象的各种方法,可以画出所有的图形。

二、如果我们要画一些直线或斜线的话,这些线不光滑可就不好看了,下面的语句可以达到我们的要求

g.SmoothingMode = SmoothingMode.AntiAlias;

三、画菱形

要先定义好菱形的4个点的坐标,通常顺时针依次写好就行了。然后就可以画了

[c-sharp]  view plain copy
  1. Point[] p = new Point[4];  
  2. p[0] = new Point(820, 380);  
  3. p[1] = new Point(835, 370);  
  4. p[2] = new Point(850, 380);  
  5. p[3] = new Point(835, 390);  
  6. g.DrawPolygon(pen, p);  
 

四、填充

(1) 可以在指定的起点和范围内填充指定的颜色

g.FillRectangle(Brushes.Black, 100, 100, 50, 100);

这句代码在坐标(100,100)处填充横向50,纵向100的黑色块

(2) 填充指定多边形

比如填充菱形

先定义菱形的坐标,然后就可以填充了

[c-sharp] view plain copy
  1. Point[] p = new Point[4];  
  2. p[0] = new Point(820, 380);  
  3. p[1] = new Point(835, 370);  
  4. p[2] = new Point(850, 380);  
  5. p[3] = new Point(835, 390);  
  6. GraphicsPath gp = new GraphicsPath();  
  7. gp.AddLines(p1);  
  8. Brush b = new SolidBrush(color);  
  9. g.FillPath(b, gp);  

五、画箭头

[c-sharp]  view plain copy
  1. /// <summary>  
  2. /// 在制定位置画箭头  
  3. /// </summary>  
  4. /// <param name="newG">绘图图面</param>  
  5. /// <param name="p">画笔</param>  
  6. /// <param name="basePoint">基准点</param>  
  7. /// <param name="w">底线长度的一半</param>  
  8. /// <param name="h">箭头的高度</param>  
  9. /// <param name="direction">方向:1,表示x;2表示y</param>  
  10. private static void DrawArrow(Graphics g, Pen p, Point basePoint, int w, int h, int direction)  
  11. {  
  12.     Point[] pt;  
  13.     if (direction == 1)  
  14.     {  
  15.         pt = new Point[3] { new Point(basePoint.X, basePoint.Y - 6), new Point(basePoint.X - 2, basePoint.Y), new Point(basePoint.X + 2, basePoint.Y) };  
  16.     }  
  17.     else  
  18.     {  
  19.         pt = new Point[3] { new Point(basePoint.X + h, basePoint.Y), new Point(basePoint.X, basePoint.Y - w), new Point(basePoint.X, basePoint.Y + w) };  
  20.     }  
  21.     g.DrawPolygon(Pens.Blue, pt);  
  22. }  
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值