C# winfrom 简单绘图GDI+

  最近比较闲,无聊就瞎看了一些小玩意。winfrom虽说现在用的除了固定的那些,基本都不会用了。不巧的事,我就在这些固定那就中里面。

  说道绘图GDI+我就简单说一下:

    GDI+:Graphics Device Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三维(3D)的图形图像,图形图像处理用到的主要命名空间是System . Drawing:提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Font类、Icon类、Image类、Pen类、Color类等.

  大概了解了什么是GDI+后,我们来看一下绘图要用到的主要工具,要画图,肯定要画板吧,在C#中画板可以通过Graphics这个类来创建,有了画板,总得弄个笔什么之类的吧,不然怎么画呀,在c#中我们可以用Pen,Brush类来实现类似功能.颜料颜色则自然是用Color类解决了.

 

  有了工具,接下来就好说了,在vs中建一个完成您from窗体,至于命名自己想吧(在这我使用vs2013写的)

 1、准备画板

    创建画板有三种方式(大家可以自己试试,至于我使用的是第一种)

      A: 在窗体或控件的Paint事件中直接引用Graphics对象 
      B: 利用窗体或某个控件的CreateGraphics方法
      C: 从继承自图像的任何对象创建Graphics对象   

1 private void Form1_Paint(object sender, PaintEventArgs e)
2         {
3             Graphics g = e.Graphics;//创建画板(这里是直接写在Form窗体上了)
4         }

  2、准备画笔 

1         private void Form1_Paint(object sender, PaintEventArgs e)
2         {
3             Graphics g = e.Graphics;//创建画板(这里是直接写在Form窗体上了)
4 
5             Pen p1 = new Pen(Color.Red, 8);//定义了一个绿色,宽度为3的画笔
6         } 

  3、开始你的创作(我这里简单的做了一个五环的小旗子)

 1 private void Form1_Paint(object sender, PaintEventArgs e)
 2         {
 3             Graphics g = e.Graphics;//创建画板(这里是直接写在Form窗体上了)
 4 
 5             //五环
 6             Pen p1 = new Pen(Color.Red, 8);//定义了一个绿色,宽度为3的画笔
 7             Pen p2 = new Pen(Color.Blue, 8);
 8             Pen p3 = new Pen(Color.Black, 8);
 9             Pen p4 = new Pen(Color.Yellow, 8);
10             Pen p5 = new Pen(Color.Green, 8); 11 g.DrawArc(p1, 85, 75, 125, 125, 1500, 1500);//用p1画笔画出了一个园 12 g.DrawArc(p2, 210, 75, 125, 125, 1500, 1500); 13 g.DrawArc(p3, 335, 75, 125, 125, 1500, 1500); 14 g.DrawArc(p4, 148, 162, 125, 125, 1500, 1500); 15 g.DrawArc(p5, 272, 162, 125, 125, 1500, 1500); 16 17 //小旗子 18 Pen p6 = new Pen(Color.Red, 15); 19 g.DrawLine(p6, 20, 20, 20, 1000); 20 g.DrawLine(p6, 600, 63, 600, 376); 21 22 Pen p7 = new Pen(Color.Red, 15); 23 Point d1 = new Point(16, 24); 24 Point d2 = new Point(200, 60); 25 Point d3 = new Point(350, 5); 26 Point d4 = new Point(600, 70); 27 28 Point d5 = new Point(20, 320); 29 Point d6 = new Point(200, 360); 30 Point d7 = new Point(350, 305); 31 Point d8 = new Point(600, 370); 32 33 g.DrawBezier(p7, d1, d2, d3, d4);//花出一条流水似的线 34  g.DrawBezier(p7, d5, d6, d7, d8); 35 }

  4、运行后的实际效果

  

  尴尬,因为画的比较大,本人在画画也没太大天赋,大伙就凑合着看吧

 

 

 

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

作者:黯淡の青春    博客地址:http://www.cnblogs.com/wuwangqianxun/

转载于:https://www.cnblogs.com/wuwangqianxun/p/7249955.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值